@tetsuo-ai/agenc 0.6.0 → 0.7.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/generated/agenc-runtime-manifest-v2.json +335 -0
- package/lib/activation-lock-identity.d.mts +3 -0
- package/lib/activation-lock-identity.mjs +151 -0
- package/lib/generated-wrapper.d.mts +23 -0
- package/lib/generated-wrapper.mjs +197 -0
- package/lib/runtime-archive.mjs +299 -0
- package/lib/runtime-compatibility.mjs +141 -0
- package/lib/runtime-manager.mjs +1161 -59
- package/lib/runtime-release-contract.d.mts +94 -0
- package/lib/runtime-release-contract.mjs +386 -0
- package/lib/sqlite-lock.d.mts +44 -0
- package/lib/sqlite-lock.mjs +1121 -0
- package/package.json +27 -7
- package/generated/.gitkeep +0 -0
- package/generated/agenc-runtime-manifest.json +0 -63
- package/scripts/build-runtime-tarball.mjs +0 -201
- package/scripts/gen-manifest.mjs +0 -91
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifestVersion": 2,
|
|
3
|
+
"runtimeVersion": "0.7.2",
|
|
4
|
+
"releaseRepository": "tetsuo-ai/agenc-releases",
|
|
5
|
+
"releaseTag": "agenc-v0.7.2",
|
|
6
|
+
"build": {
|
|
7
|
+
"sourceCommit": "e69274564c6316c2b4f7aea1f108e95939ebff20",
|
|
8
|
+
"sourceRef": "refs/tags/agenc-v0.7.2",
|
|
9
|
+
"sourceDateEpoch": 1784518801,
|
|
10
|
+
"lockfileSha256": "78e8179e61c10f5aa5678a741cf539513a386f8d96cbdf0e056ce34750c969d4",
|
|
11
|
+
"nodeVersion": "v25.9.0",
|
|
12
|
+
"nodeMajor": 25,
|
|
13
|
+
"nodeModuleAbi": "141",
|
|
14
|
+
"nodeApiVersion": "10",
|
|
15
|
+
"npmVersion": "11.17.0",
|
|
16
|
+
"artifactProfile": "release"
|
|
17
|
+
},
|
|
18
|
+
"artifacts": [
|
|
19
|
+
{
|
|
20
|
+
"platform": "darwin",
|
|
21
|
+
"arch": "arm64",
|
|
22
|
+
"runtimeVersion": "0.7.2",
|
|
23
|
+
"nodeMajor": 25,
|
|
24
|
+
"nodeModuleAbi": "141",
|
|
25
|
+
"nodeApiVersion": "10",
|
|
26
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-darwin-arm64-node25-abi141.tar.gz",
|
|
27
|
+
"sha256": "5b11f8ceeb0fa0bbfdf010e2d691fa5bdbfc1fe4c23580f6ed94f7e12407a948",
|
|
28
|
+
"bytes": 64289302,
|
|
29
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-darwin-arm64-node25-abi141.tar.gz.sigstore.json",
|
|
30
|
+
"attestationSha256": "c292a8a21ece2c6f5d6ebdb1de99da5562cdf911550e221dab4c278cc56fe4e8",
|
|
31
|
+
"attestationBytes": 11381,
|
|
32
|
+
"metadataSha256": "b3570428ccd77d2990ab520f68af9cfdc5ec68f873eab1fb7d0012523f6c9a01",
|
|
33
|
+
"nativeToolchain": {
|
|
34
|
+
"schemaVersion": 1,
|
|
35
|
+
"builder": "github-hosted:macos-15:macos15:20260715.0234.1:ARM64",
|
|
36
|
+
"runnerLabel": "macos-15",
|
|
37
|
+
"runnerImage": "macos15",
|
|
38
|
+
"runnerImageVersion": "20260715.0234.1",
|
|
39
|
+
"runnerArch": "ARM64",
|
|
40
|
+
"cc": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
41
|
+
"cxx": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
42
|
+
"linker": "@(#)PROGRAM:ld PROJECT:ld-1167.5",
|
|
43
|
+
"python": "Python 3.14.6",
|
|
44
|
+
"make": "GNU Make 3.81",
|
|
45
|
+
"buildFlags": {
|
|
46
|
+
"CC": "/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
|
|
47
|
+
"CXX": "/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++",
|
|
48
|
+
"LDFLAGS": "-Wl,-S",
|
|
49
|
+
"MACOSX_DEPLOYMENT_TARGET": "13.5",
|
|
50
|
+
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
51
|
+
"npm_config_build_from_source": "true"
|
|
52
|
+
},
|
|
53
|
+
"nodeDistributionFile": "node-v25.9.0-darwin-arm64.tar.gz",
|
|
54
|
+
"nodeDistributionSha256": "e479f3c469d3d9303a44f00a8ea37a3788395d171bb8059c48a4bbbd2e371b59",
|
|
55
|
+
"nodeHeadersFile": "node-v25.9.0-headers.tar.gz",
|
|
56
|
+
"nodeHeadersSha256": "de7a1b69ceee1a8a29a98d005d1edb642e917e5fed801fcadfd678d6f618c77a",
|
|
57
|
+
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
58
|
+
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
59
|
+
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
60
|
+
"sdk": "15.5"
|
|
61
|
+
},
|
|
62
|
+
"dependencyTreeSha256": "58e0d4964cebde797a8b5b7ca9d7920f3a6357d5fd5933e4eb3b56aa7f582ce2",
|
|
63
|
+
"dependencyPackages": 459,
|
|
64
|
+
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
65
|
+
"archiveValidation": {
|
|
66
|
+
"policy": "agenc-runtime-archive-v1",
|
|
67
|
+
"entries": 28784,
|
|
68
|
+
"uncompressedBytes": 302283776
|
|
69
|
+
},
|
|
70
|
+
"minimumMacosVersion": "11.0",
|
|
71
|
+
"bins": {
|
|
72
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"platform": "darwin",
|
|
77
|
+
"arch": "x64",
|
|
78
|
+
"runtimeVersion": "0.7.2",
|
|
79
|
+
"nodeMajor": 25,
|
|
80
|
+
"nodeModuleAbi": "141",
|
|
81
|
+
"nodeApiVersion": "10",
|
|
82
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-darwin-x64-node25-abi141.tar.gz",
|
|
83
|
+
"sha256": "c3b5bdce06831fd4dbf5791194aeaace46672f560f8b4ae0ae67b9521bbe58f0",
|
|
84
|
+
"bytes": 64926866,
|
|
85
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-darwin-x64-node25-abi141.tar.gz.sigstore.json",
|
|
86
|
+
"attestationSha256": "a3dc7c822084ab35cc02bae2b04c31c87757b92b5802971a2f4eb811e7b97fd7",
|
|
87
|
+
"attestationBytes": 11271,
|
|
88
|
+
"metadataSha256": "cf093dd89088440ffc9c70b352331e1e7e01b1459ab99019dfbca07ce374f97c",
|
|
89
|
+
"nativeToolchain": {
|
|
90
|
+
"schemaVersion": 1,
|
|
91
|
+
"builder": "github-hosted:macos-15-intel:macos15:20260715.0340.1:X64",
|
|
92
|
+
"runnerLabel": "macos-15-intel",
|
|
93
|
+
"runnerImage": "macos15",
|
|
94
|
+
"runnerImageVersion": "20260715.0340.1",
|
|
95
|
+
"runnerArch": "X64",
|
|
96
|
+
"cc": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
97
|
+
"cxx": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
98
|
+
"linker": "@(#)PROGRAM:ld PROJECT:ld-1167.5",
|
|
99
|
+
"python": "Python 3.14.6",
|
|
100
|
+
"make": "GNU Make 3.81",
|
|
101
|
+
"buildFlags": {
|
|
102
|
+
"CC": "/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
|
|
103
|
+
"CXX": "/Applications/Xcode_16.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++",
|
|
104
|
+
"LDFLAGS": "-Wl,-S",
|
|
105
|
+
"MACOSX_DEPLOYMENT_TARGET": "13.5",
|
|
106
|
+
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
107
|
+
"npm_config_build_from_source": "true"
|
|
108
|
+
},
|
|
109
|
+
"nodeDistributionFile": "node-v25.9.0-darwin-x64.tar.gz",
|
|
110
|
+
"nodeDistributionSha256": "7d737b53ce191142bfa1c17cfa5b070d96e84eebf76b8dd06d84981cbdc3f7e3",
|
|
111
|
+
"nodeHeadersFile": "node-v25.9.0-headers.tar.gz",
|
|
112
|
+
"nodeHeadersSha256": "de7a1b69ceee1a8a29a98d005d1edb642e917e5fed801fcadfd678d6f618c77a",
|
|
113
|
+
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
114
|
+
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
115
|
+
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
116
|
+
"sdk": "15.5"
|
|
117
|
+
},
|
|
118
|
+
"dependencyTreeSha256": "4c921c33de0442ff19473b7a197c808745259a6deb33c8b9462b3e5d1b83d6c6",
|
|
119
|
+
"dependencyPackages": 459,
|
|
120
|
+
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
121
|
+
"archiveValidation": {
|
|
122
|
+
"policy": "agenc-runtime-archive-v1",
|
|
123
|
+
"entries": 28784,
|
|
124
|
+
"uncompressedBytes": 304311296
|
|
125
|
+
},
|
|
126
|
+
"minimumMacosVersion": "10.15",
|
|
127
|
+
"bins": {
|
|
128
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"platform": "linux",
|
|
133
|
+
"arch": "arm64",
|
|
134
|
+
"runtimeVersion": "0.7.2",
|
|
135
|
+
"nodeMajor": 25,
|
|
136
|
+
"nodeModuleAbi": "141",
|
|
137
|
+
"nodeApiVersion": "10",
|
|
138
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-linux-arm64-node25-abi141.tar.gz",
|
|
139
|
+
"sha256": "abcb28cc611be964300b07d8d6105f60cd70bb67414e80a1d97b87abe487f89d",
|
|
140
|
+
"bytes": 73128376,
|
|
141
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-linux-arm64-node25-abi141.tar.gz.sigstore.json",
|
|
142
|
+
"attestationSha256": "fdee4577ca16688925a4ed658d9564bb6f8478aafbd6432e7d2a452c2a4c20b6",
|
|
143
|
+
"attestationBytes": 11087,
|
|
144
|
+
"metadataSha256": "a73b28729b0c281cef37673a79a5cb858b3c5c7dfc9f413b543bd95aea361a80",
|
|
145
|
+
"nativeToolchain": {
|
|
146
|
+
"schemaVersion": 1,
|
|
147
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:cd2f3fb1aa51e2142ca74e202d9403b2861d47fc82cb036150ecb92ee62306d2",
|
|
148
|
+
"runnerArch": "ARM64",
|
|
149
|
+
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
150
|
+
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
151
|
+
"linker": "GNU ld version 2.38-17.el8",
|
|
152
|
+
"python": "Python 3.12.13",
|
|
153
|
+
"make": "GNU Make 4.2.1",
|
|
154
|
+
"buildFlags": {
|
|
155
|
+
"CC": "/opt/rh/gcc-toolset-12/root/usr/bin/gcc",
|
|
156
|
+
"CXX": "/opt/rh/gcc-toolset-12/root/usr/bin/g++",
|
|
157
|
+
"npm_config_build_from_source": "true",
|
|
158
|
+
"npm_config_python": "/usr/bin/python3.12"
|
|
159
|
+
},
|
|
160
|
+
"nodeDistributionFile": "node-v25.9.0-linux-arm64.tar.gz",
|
|
161
|
+
"nodeDistributionSha256": "8fb4283301b8c720fc9f18bffff0f659e72cc14d0cf207a3bb411808aaa73a57",
|
|
162
|
+
"nodeHeadersFile": "node-v25.9.0-headers.tar.gz",
|
|
163
|
+
"nodeHeadersSha256": "de7a1b69ceee1a8a29a98d005d1edb642e917e5fed801fcadfd678d6f618c77a",
|
|
164
|
+
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
165
|
+
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
166
|
+
"rpmContentInventorySchemaVersion": 1,
|
|
167
|
+
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
168
|
+
"rpmContentInventorySha256": "cd2f3fb1aa51e2142ca74e202d9403b2861d47fc82cb036150ecb92ee62306d2",
|
|
169
|
+
"rpmSigningKeyIds": [
|
|
170
|
+
"15af5dac6d745a60"
|
|
171
|
+
],
|
|
172
|
+
"rpmPackages": [
|
|
173
|
+
"gcc-toolset-12-binutils-2.38-17.el8",
|
|
174
|
+
"gcc-toolset-12-gcc-c++-12.2.1-7.8.el8_10",
|
|
175
|
+
"git-2.43.7-1.el8_10",
|
|
176
|
+
"gzip-1.9-13.el8_5",
|
|
177
|
+
"libatomic-8.5.0-28.el8_10",
|
|
178
|
+
"make-4.2.1-11.el8",
|
|
179
|
+
"python3.12-3.12.13-2.el8_10",
|
|
180
|
+
"tar-1.30-11.el8_10"
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
"dependencyTreeSha256": "797875f7ff384962c39a91404720b01100b448939a7371c4e8df9d6d65787bd4",
|
|
184
|
+
"dependencyPackages": 461,
|
|
185
|
+
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
186
|
+
"archiveValidation": {
|
|
187
|
+
"policy": "agenc-runtime-archive-v1",
|
|
188
|
+
"entries": 28800,
|
|
189
|
+
"uncompressedBytes": 321190912
|
|
190
|
+
},
|
|
191
|
+
"libcFamily": "glibc",
|
|
192
|
+
"minimumGlibcVersion": "2.28",
|
|
193
|
+
"minimumGlibcxxVersion": "3.4.22",
|
|
194
|
+
"minimumCxxAbiVersion": "1.3.11",
|
|
195
|
+
"bins": {
|
|
196
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"platform": "linux",
|
|
201
|
+
"arch": "x64",
|
|
202
|
+
"runtimeVersion": "0.7.2",
|
|
203
|
+
"nodeMajor": 25,
|
|
204
|
+
"nodeModuleAbi": "141",
|
|
205
|
+
"nodeApiVersion": "10",
|
|
206
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-linux-x64-node25-abi141.tar.gz",
|
|
207
|
+
"sha256": "1f1d6e445963876b2f8900ed3188bfc01741fe2007eda55cc0119c9c38f4eff4",
|
|
208
|
+
"bytes": 72649356,
|
|
209
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-linux-x64-node25-abi141.tar.gz.sigstore.json",
|
|
210
|
+
"attestationSha256": "1726cf79f66f1337d216975237d0838e6dbf58b26de673290c6cfde0ee9c8a33",
|
|
211
|
+
"attestationBytes": 11279,
|
|
212
|
+
"metadataSha256": "b2c4f91e85e613b4ae777abaa5eace25667c9662d5ff46cbd69ed7b095312507",
|
|
213
|
+
"nativeToolchain": {
|
|
214
|
+
"schemaVersion": 1,
|
|
215
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:b218a774252c748c748d0e18837b7ca655c8e657bc20b1213a9f8cbb177b58bb",
|
|
216
|
+
"runnerArch": "X64",
|
|
217
|
+
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
218
|
+
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
219
|
+
"linker": "GNU ld version 2.38-17.el8",
|
|
220
|
+
"python": "Python 3.12.13",
|
|
221
|
+
"make": "GNU Make 4.2.1",
|
|
222
|
+
"buildFlags": {
|
|
223
|
+
"CC": "/opt/rh/gcc-toolset-12/root/usr/bin/gcc",
|
|
224
|
+
"CXX": "/opt/rh/gcc-toolset-12/root/usr/bin/g++",
|
|
225
|
+
"npm_config_build_from_source": "true",
|
|
226
|
+
"npm_config_python": "/usr/bin/python3.12"
|
|
227
|
+
},
|
|
228
|
+
"nodeDistributionFile": "node-v25.9.0-linux-x64.tar.gz",
|
|
229
|
+
"nodeDistributionSha256": "134e55b2408448a219760fe04dc44d6851f9de8a79549021ffd870e9082d9e7b",
|
|
230
|
+
"nodeHeadersFile": "node-v25.9.0-headers.tar.gz",
|
|
231
|
+
"nodeHeadersSha256": "de7a1b69ceee1a8a29a98d005d1edb642e917e5fed801fcadfd678d6f618c77a",
|
|
232
|
+
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
233
|
+
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
234
|
+
"rpmContentInventorySchemaVersion": 1,
|
|
235
|
+
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
236
|
+
"rpmContentInventorySha256": "b218a774252c748c748d0e18837b7ca655c8e657bc20b1213a9f8cbb177b58bb",
|
|
237
|
+
"rpmSigningKeyIds": [
|
|
238
|
+
"15af5dac6d745a60"
|
|
239
|
+
],
|
|
240
|
+
"rpmPackages": [
|
|
241
|
+
"gcc-toolset-12-binutils-2.38-17.el8",
|
|
242
|
+
"gcc-toolset-12-gcc-c++-12.2.1-7.8.el8_10",
|
|
243
|
+
"git-2.43.7-1.el8_10",
|
|
244
|
+
"gzip-1.9-13.el8_5",
|
|
245
|
+
"libatomic-8.5.0-28.el8_10",
|
|
246
|
+
"make-4.2.1-11.el8",
|
|
247
|
+
"python3.12-3.12.13-2.el8_10",
|
|
248
|
+
"tar-1.30-11.el8_10"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
"dependencyTreeSha256": "07ec6137bdfc044af1d5652080841f31bb2535341f5356ff3f164f05e2a0e451",
|
|
252
|
+
"dependencyPackages": 461,
|
|
253
|
+
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
254
|
+
"archiveValidation": {
|
|
255
|
+
"policy": "agenc-runtime-archive-v1",
|
|
256
|
+
"entries": 28800,
|
|
257
|
+
"uncompressedBytes": 321744384
|
|
258
|
+
},
|
|
259
|
+
"libcFamily": "glibc",
|
|
260
|
+
"minimumGlibcVersion": "2.28",
|
|
261
|
+
"minimumGlibcxxVersion": "3.4.22",
|
|
262
|
+
"minimumCxxAbiVersion": "1.3.11",
|
|
263
|
+
"bins": {
|
|
264
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"platform": "win",
|
|
269
|
+
"arch": "x64",
|
|
270
|
+
"runtimeVersion": "0.7.2",
|
|
271
|
+
"nodeMajor": 25,
|
|
272
|
+
"nodeModuleAbi": "141",
|
|
273
|
+
"nodeApiVersion": "10",
|
|
274
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-win-x64-node25-abi141.tar.gz",
|
|
275
|
+
"sha256": "3035b3ec41460b84ce8d313b81303493e54d3816ca754b41b38749bfde02c419",
|
|
276
|
+
"bytes": 65825990,
|
|
277
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.7.2/agenc-runtime-0.7.2-win-x64-node25-abi141.tar.gz.sigstore.json",
|
|
278
|
+
"attestationSha256": "e6b5919efcdaa0d21e76b5f37bf329951ea2199e8c8a0a470a946175c0a3c3b3",
|
|
279
|
+
"attestationBytes": 11311,
|
|
280
|
+
"metadataSha256": "b345197d88f31b766efff7062af6b8be00f38eed4321a4c0f6692774f9aa675e",
|
|
281
|
+
"nativeToolchain": {
|
|
282
|
+
"schemaVersion": 1,
|
|
283
|
+
"builder": "github-hosted:windows-2025:win25-vs2026:20260714.173.1:X64",
|
|
284
|
+
"runnerLabel": "windows-2025",
|
|
285
|
+
"runnerImage": "win25-vs2026",
|
|
286
|
+
"runnerImageVersion": "20260714.173.1",
|
|
287
|
+
"runnerArch": "X64",
|
|
288
|
+
"cc": "Microsoft (R) C/C++ Optimizing Compiler Version 19.51.36248 for x64",
|
|
289
|
+
"cxx": "Microsoft (R) C/C++ Optimizing Compiler Version 19.51.36248 for x64",
|
|
290
|
+
"linker": "link: missing operand after '/?'",
|
|
291
|
+
"python": "Python 3.12.10",
|
|
292
|
+
"make": "GNU Make 4.4.1",
|
|
293
|
+
"buildFlags": {
|
|
294
|
+
"CC": "cl.exe",
|
|
295
|
+
"CXX": "cl.exe",
|
|
296
|
+
"CL": "/Brepro /d1trimfile:<release-stage>\\",
|
|
297
|
+
"LINK": "/Brepro /PDBALTPATH:%_PDB%",
|
|
298
|
+
"_LINK_": "/DEBUG:NONE /INCREMENTAL:NO /Brepro",
|
|
299
|
+
"npm_config_build_from_source": "true"
|
|
300
|
+
},
|
|
301
|
+
"nodeDistributionFile": "node-v25.9.0-win-x64.zip",
|
|
302
|
+
"nodeDistributionSha256": "929552b8305effac843ba7b4270c437aefb702fc3fbd73fcd1bffd35d4ac284e",
|
|
303
|
+
"nodeHeadersFile": "node-v25.9.0-headers.tar.gz",
|
|
304
|
+
"nodeHeadersSha256": "de7a1b69ceee1a8a29a98d005d1edb642e917e5fed801fcadfd678d6f618c77a",
|
|
305
|
+
"nodeImportLibraryFile": "node.lib",
|
|
306
|
+
"nodeImportLibrarySha256": "e3577a5a4a772b21646fe05a24d53ce3727395bbbc412f326889ddf7129bc7a9",
|
|
307
|
+
"nodeImportLibraryBytes": 2995712,
|
|
308
|
+
"nodeCommonGypiFile": "include/node/common.gypi",
|
|
309
|
+
"nodeCommonGypiSourceSha256": "1fa5e02d19706d796b1ba275f11e3a2deec59d34eaaf34efab5779145f385f8a",
|
|
310
|
+
"nodeCommonGypiReleaseSha256": "8a9331b700e6cdd52e611d249a78e02513d70dd45f4be314bf6f1e301d4bbd2d",
|
|
311
|
+
"nodeCommonGypiTransformation": "disable-debug-information-and-full-paths",
|
|
312
|
+
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
313
|
+
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
314
|
+
"visualStudioVersion": "18.7.11925.98",
|
|
315
|
+
"visualStudioInstallPath": "C:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise",
|
|
316
|
+
"msvcToolsVersion": "14.51.36231",
|
|
317
|
+
"windowsSdkVersion": "10.0.26100.0",
|
|
318
|
+
"compilerDetails": "Microsoft (R) C/C++ Optimizing Compiler Version 19.51.36248 for x64\nCopyright (C) Microsoft Corporation. All rights reserved.\nCompiler Passes:\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\cl.exe: Version 19.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\c1.dll: Version 19.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\c1xx.dll: Version 19.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\c2.dll: Version 19.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\c1xx.dll: Version 19.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\link.exe: Version 14.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\mspdb140.dll: Version 14.51.36248.0\nC:\\Program Files\\Microsoft Visual Studio\\18\\Enterprise\\VC\\Tools\\MSVC\\14.51.36231\\bin\\HostX64\\x64\\1033\\clui.dll: Version 19.51.36248.0\ncl : Command line error D8003 : missing source filename",
|
|
319
|
+
"msvcCompilerSha256": "dc8426b8760d92cf757df3d10b9f0244a95b454ff43194a58161568a0ec70d53",
|
|
320
|
+
"msvcLinkerSha256": "e8c524347b8bc87fba790d254c8a3b902bf1a4b63807093b816d992940af3791"
|
|
321
|
+
},
|
|
322
|
+
"dependencyTreeSha256": "c8b1f92eb764d82fe645a935c84ae33bd3f2bd0491bfa7aed856bfec0ca3a7f4",
|
|
323
|
+
"dependencyPackages": 458,
|
|
324
|
+
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
325
|
+
"archiveValidation": {
|
|
326
|
+
"policy": "agenc-runtime-archive-v1",
|
|
327
|
+
"entries": 28823,
|
|
328
|
+
"uncompressedBytes": 307360768
|
|
329
|
+
},
|
|
330
|
+
"bins": {
|
|
331
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
]
|
|
335
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Stable account and wrapper identities shared by the launcher, runtime
|
|
2
|
+
// updater, and standalone installers. Wrapper files are atomically replaced,
|
|
3
|
+
// so their own inode is intentionally not part of the persistent lock key.
|
|
4
|
+
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
6
|
+
import {
|
|
7
|
+
chmodSync,
|
|
8
|
+
existsSync,
|
|
9
|
+
lstatSync,
|
|
10
|
+
mkdirSync,
|
|
11
|
+
realpathSync,
|
|
12
|
+
} from "node:fs";
|
|
13
|
+
import { userInfo } from "node:os";
|
|
14
|
+
import { basename, dirname, isAbsolute, join, resolve } from "node:path";
|
|
15
|
+
|
|
16
|
+
let cachedActivationLockRegistry;
|
|
17
|
+
const UNSUPPORTED_FILE_ID_64 = 0xffff_ffff_ffff_ffffn;
|
|
18
|
+
|
|
19
|
+
function hasUsableFileIdentity(stat) {
|
|
20
|
+
return stat.dev !== 0n &&
|
|
21
|
+
stat.ino !== 0n &&
|
|
22
|
+
stat.ino !== -1n &&
|
|
23
|
+
BigInt.asUintN(64, stat.ino) !== UNSUPPORTED_FILE_ID_64;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function existingAgenCHomeIdentity(requested) {
|
|
27
|
+
if (typeof requested !== "string" || !isAbsolute(requested)) return undefined;
|
|
28
|
+
try {
|
|
29
|
+
const canonical = realpathSync.native(resolve(requested));
|
|
30
|
+
const stat = lstatSync(canonical, { bigint: true });
|
|
31
|
+
if (!stat.isDirectory() || stat.isSymbolicLink()) return undefined;
|
|
32
|
+
if (
|
|
33
|
+
process.platform !== "win32" &&
|
|
34
|
+
typeof process.getuid === "function" &&
|
|
35
|
+
stat.uid !== BigInt(process.getuid())
|
|
36
|
+
) return undefined;
|
|
37
|
+
if (!hasUsableFileIdentity(stat)) return undefined;
|
|
38
|
+
return `${stat.dev}:${stat.ino}`;
|
|
39
|
+
} catch {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function ensureAccountRegistryPath(accountHome, segments, uid) {
|
|
45
|
+
const canonicalHome = realpathSync(accountHome);
|
|
46
|
+
const homeStat = lstatSync(canonicalHome);
|
|
47
|
+
if (!homeStat.isDirectory() || homeStat.isSymbolicLink()) {
|
|
48
|
+
throw new Error(`account home is not a real directory: ${canonicalHome}`);
|
|
49
|
+
}
|
|
50
|
+
if (uid !== undefined && homeStat.uid !== uid) {
|
|
51
|
+
throw new Error(`account home has the wrong owner: ${canonicalHome}`);
|
|
52
|
+
}
|
|
53
|
+
if (uid !== undefined && (homeStat.mode & 0o022) !== 0) {
|
|
54
|
+
throw new Error(`account home is group/world writable: ${canonicalHome}`);
|
|
55
|
+
}
|
|
56
|
+
let current = canonicalHome;
|
|
57
|
+
for (let index = 0; index < segments.length; index += 1) {
|
|
58
|
+
current = join(current, segments[index]);
|
|
59
|
+
try {
|
|
60
|
+
mkdirSync(current, { mode: 0o700 });
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (error?.code !== "EEXIST") throw error;
|
|
63
|
+
}
|
|
64
|
+
const stat = lstatSync(current);
|
|
65
|
+
if (!stat.isDirectory() || stat.isSymbolicLink()) {
|
|
66
|
+
throw new Error(`activation lock registry path is not a real directory: ${current}`);
|
|
67
|
+
}
|
|
68
|
+
if (uid !== undefined) {
|
|
69
|
+
if (stat.uid !== uid) {
|
|
70
|
+
throw new Error(`activation lock registry path has the wrong owner: ${current}`);
|
|
71
|
+
}
|
|
72
|
+
if ((stat.mode & 0o022) !== 0) {
|
|
73
|
+
throw new Error(`activation lock registry path is group/world writable: ${current}`);
|
|
74
|
+
}
|
|
75
|
+
// AgenC-owned components are private. Do not rewrite conventional
|
|
76
|
+
// account directories such as .local/state or Library/Application Support.
|
|
77
|
+
if (index >= segments.length - 2) chmodSync(current, 0o700);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return current;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function resolveActivationLockRegistry() {
|
|
84
|
+
if (cachedActivationLockRegistry !== undefined) return cachedActivationLockRegistry;
|
|
85
|
+
if (!["linux", "darwin", "win32"].includes(process.platform)) {
|
|
86
|
+
throw new Error(`unsupported platform for wrapper locking: ${process.platform}`);
|
|
87
|
+
}
|
|
88
|
+
const account = userInfo();
|
|
89
|
+
if (!isAbsolute(account.homedir)) {
|
|
90
|
+
throw new Error("operating-system account home is unavailable");
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
let segments;
|
|
94
|
+
let uid;
|
|
95
|
+
if (process.platform === "win32") {
|
|
96
|
+
// os.userInfo().homedir is supplied by the operating system rather than
|
|
97
|
+
// USERPROFILE. Keep the registry under that stable profile root and let
|
|
98
|
+
// the SQLite lock layer enforce local-volume and ACL policy.
|
|
99
|
+
segments = [".agenc-state", "activation-locks"];
|
|
100
|
+
} else {
|
|
101
|
+
if (typeof process.getuid !== "function" || account.uid !== process.getuid()) {
|
|
102
|
+
throw new Error("operating-system account identity is inconsistent");
|
|
103
|
+
}
|
|
104
|
+
uid = process.getuid();
|
|
105
|
+
segments = process.platform === "darwin"
|
|
106
|
+
? ["Library", "Application Support", "AgenC", "activation-locks"]
|
|
107
|
+
: [".local", "state", "AgenC", "activation-locks"];
|
|
108
|
+
}
|
|
109
|
+
cachedActivationLockRegistry = realpathSync(
|
|
110
|
+
ensureAccountRegistryPath(account.homedir, segments, uid),
|
|
111
|
+
);
|
|
112
|
+
return cachedActivationLockRegistry;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function wrapperActivationLockPath(wrapperPath, registry) {
|
|
116
|
+
const absolute = resolve(wrapperPath);
|
|
117
|
+
const parent = realpathSync.native(dirname(absolute));
|
|
118
|
+
const candidate = join(parent, basename(absolute));
|
|
119
|
+
let entryName = basename(absolute);
|
|
120
|
+
if (existsSync(candidate)) {
|
|
121
|
+
const stat = lstatSync(candidate);
|
|
122
|
+
if (!stat.isFile() || stat.isSymbolicLink()) {
|
|
123
|
+
throw new Error(`wrapper is not a regular non-symlink file: ${candidate}`);
|
|
124
|
+
}
|
|
125
|
+
if (stat.nlink > 1) {
|
|
126
|
+
throw new Error(`wrapper must not have hard-link aliases: ${candidate}`);
|
|
127
|
+
}
|
|
128
|
+
entryName = basename(realpathSync.native(candidate));
|
|
129
|
+
}
|
|
130
|
+
const parentStat = lstatSync(parent, { bigint: true });
|
|
131
|
+
if (!parentStat.isDirectory() || parentStat.isSymbolicLink()) {
|
|
132
|
+
throw new Error(`wrapper parent is not a real directory: ${parent}`);
|
|
133
|
+
}
|
|
134
|
+
if (
|
|
135
|
+
process.platform !== "win32" &&
|
|
136
|
+
typeof process.getuid === "function" &&
|
|
137
|
+
(parentStat.uid !== BigInt(process.getuid()) || (parentStat.mode & 0o022n) !== 0n)
|
|
138
|
+
) {
|
|
139
|
+
throw new Error(`wrapper parent is not privately owned by the current user: ${parent}`);
|
|
140
|
+
}
|
|
141
|
+
if (!hasUsableFileIdentity(parentStat)) {
|
|
142
|
+
throw new Error(`wrapper parent has no stable filesystem identity: ${parent}`);
|
|
143
|
+
}
|
|
144
|
+
// Do not case-fold Windows paths or entry names. NTFS supports per-directory
|
|
145
|
+
// case sensitivity, so two differently-cased names can be different files.
|
|
146
|
+
// The validated directory identity is stable across aliases and renames;
|
|
147
|
+
// realpath-derived entry casing distinguishes existing wrapper entries.
|
|
148
|
+
const identity = `parent:${parentStat.dev}:${parentStat.ino}:name:${entryName}`;
|
|
149
|
+
const digest = createHash("sha256").update(identity).digest("hex");
|
|
150
|
+
return join(registry, `${digest}.sqlite`);
|
|
151
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type WrapperKind = "posix" | "cmd";
|
|
2
|
+
|
|
3
|
+
export interface GeneratedWrapper {
|
|
4
|
+
readonly kind: WrapperKind;
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly nodeBin: string;
|
|
7
|
+
readonly runtimeBin: string;
|
|
8
|
+
readonly agencHome: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const GENERATED_WRAPPER_MAX_BYTES: number;
|
|
12
|
+
|
|
13
|
+
export function renderGeneratedWrapperContent(wrapper: {
|
|
14
|
+
readonly kind: WrapperKind;
|
|
15
|
+
readonly nodeBin: string;
|
|
16
|
+
readonly runtimeBin: string;
|
|
17
|
+
readonly agencHome: string;
|
|
18
|
+
}): string;
|
|
19
|
+
|
|
20
|
+
export function parseGeneratedWrapperContent(
|
|
21
|
+
path: string,
|
|
22
|
+
content: string,
|
|
23
|
+
): GeneratedWrapper | null;
|