@tetsuo-ai/agenc 0.9.2 → 0.11.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 +118 -109
- package/lib/generated-wrapper.d.mts +2 -0
- package/lib/generated-wrapper.mjs +53 -9
- package/lib/runtime-archive.d.mts +58 -0
- package/lib/runtime-archive.mjs +250 -0
- package/lib/runtime-manager.mjs +121 -32
- package/lib/runtime-release-contract.d.mts +14 -1
- package/lib/runtime-release-contract.mjs +56 -1
- package/package.json +3 -2
- package/src/launcher.mjs +104 -12
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": 2,
|
|
3
|
-
"runtimeVersion": "0.
|
|
3
|
+
"runtimeVersion": "0.11.2",
|
|
4
4
|
"releaseRepository": "tetsuo-ai/agenc-releases",
|
|
5
|
-
"releaseTag": "agenc-v0.
|
|
5
|
+
"releaseTag": "agenc-v0.11.2",
|
|
6
6
|
"build": {
|
|
7
|
-
"sourceCommit": "
|
|
8
|
-
"sourceRef": "refs/tags/agenc-v0.
|
|
9
|
-
"sourceDateEpoch":
|
|
10
|
-
"lockfileSha256": "
|
|
11
|
-
"nodeVersion": "
|
|
12
|
-
"nodeMajor":
|
|
13
|
-
"nodeModuleAbi": "
|
|
7
|
+
"sourceCommit": "7f862dbb84e4bcf57e3b0e3e26ab8c5b70cb276d",
|
|
8
|
+
"sourceRef": "refs/tags/agenc-v0.11.2",
|
|
9
|
+
"sourceDateEpoch": 1785182285,
|
|
10
|
+
"lockfileSha256": "4a7e3baea685b32774d62570d89c7d42e7b040329b05da178ecf21ec3a01a237",
|
|
11
|
+
"nodeVersion": "v26.5.0",
|
|
12
|
+
"nodeMajor": 26,
|
|
13
|
+
"nodeModuleAbi": "147",
|
|
14
14
|
"nodeApiVersion": "10",
|
|
15
15
|
"npmVersion": "11.17.0",
|
|
16
16
|
"artifactProfile": "release"
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
{
|
|
20
20
|
"platform": "darwin",
|
|
21
21
|
"arch": "arm64",
|
|
22
|
-
"runtimeVersion": "0.
|
|
23
|
-
"nodeMajor":
|
|
24
|
-
"nodeModuleAbi": "
|
|
22
|
+
"runtimeVersion": "0.11.2",
|
|
23
|
+
"nodeMajor": 26,
|
|
24
|
+
"nodeModuleAbi": "147",
|
|
25
25
|
"nodeApiVersion": "10",
|
|
26
|
-
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
27
|
-
"sha256": "
|
|
28
|
-
"bytes":
|
|
29
|
-
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
30
|
-
"attestationSha256": "
|
|
31
|
-
"attestationBytes":
|
|
32
|
-
"metadataSha256": "
|
|
26
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-darwin-arm64-node26-abi147.tar.gz",
|
|
27
|
+
"sha256": "daa200674c110b323d76e92b391864074b3b1b53fa4fbb2f99270ac47c788c78",
|
|
28
|
+
"bytes": 109963910,
|
|
29
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-darwin-arm64-node26-abi147.tar.gz.sigstore.json",
|
|
30
|
+
"attestationSha256": "a837af8d7312f52aedd6f5eccf7cd1cb174fb970d6de4b9ecb586d9951fd79e2",
|
|
31
|
+
"attestationBytes": 11542,
|
|
32
|
+
"metadataSha256": "a1522d50cc8e4444849c5b685d768e55a0b19c033bfde9ff3a038ada4760c12b",
|
|
33
33
|
"nativeToolchain": {
|
|
34
34
|
"schemaVersion": 1,
|
|
35
35
|
"builder": "github-hosted:macos-15:macos15:20260715.0234.1:ARM64",
|
|
@@ -50,42 +50,43 @@
|
|
|
50
50
|
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
51
51
|
"npm_config_build_from_source": "true"
|
|
52
52
|
},
|
|
53
|
-
"nodeDistributionFile": "node-
|
|
54
|
-
"nodeDistributionSha256": "
|
|
55
|
-
"nodeHeadersFile": "node-
|
|
56
|
-
"nodeHeadersSha256": "
|
|
53
|
+
"nodeDistributionFile": "node-v26.5.0-darwin-arm64.tar.gz",
|
|
54
|
+
"nodeDistributionSha256": "ee920559aaa2391569cff4d737e3b83963430e3a14dedd91bfe0ff53171b5af9",
|
|
55
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
56
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
57
57
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
58
58
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
59
59
|
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
60
60
|
"sdk": "15.5"
|
|
61
61
|
},
|
|
62
|
-
"dependencyTreeSha256": "
|
|
62
|
+
"dependencyTreeSha256": "22693d4afd16c2581ff426e75ab3da04e1658732c6ce9a7c9c7faf5863e16ed1",
|
|
63
63
|
"dependencyPackages": 459,
|
|
64
64
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
65
65
|
"archiveValidation": {
|
|
66
66
|
"policy": "agenc-runtime-archive-v1",
|
|
67
|
-
"entries":
|
|
68
|
-
"uncompressedBytes":
|
|
67
|
+
"entries": 28856,
|
|
68
|
+
"uncompressedBytes": 449232896
|
|
69
69
|
},
|
|
70
|
-
"minimumMacosVersion": "
|
|
70
|
+
"minimumMacosVersion": "13.5",
|
|
71
71
|
"bins": {
|
|
72
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
72
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
73
|
+
"node": "node_modules/.agenc-node/bin/node"
|
|
73
74
|
}
|
|
74
75
|
},
|
|
75
76
|
{
|
|
76
77
|
"platform": "darwin",
|
|
77
78
|
"arch": "x64",
|
|
78
|
-
"runtimeVersion": "0.
|
|
79
|
-
"nodeMajor":
|
|
80
|
-
"nodeModuleAbi": "
|
|
79
|
+
"runtimeVersion": "0.11.2",
|
|
80
|
+
"nodeMajor": 26,
|
|
81
|
+
"nodeModuleAbi": "147",
|
|
81
82
|
"nodeApiVersion": "10",
|
|
82
|
-
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
83
|
-
"sha256": "
|
|
84
|
-
"bytes":
|
|
85
|
-
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
86
|
-
"attestationSha256": "
|
|
87
|
-
"attestationBytes":
|
|
88
|
-
"metadataSha256": "
|
|
83
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-darwin-x64-node26-abi147.tar.gz",
|
|
84
|
+
"sha256": "13ac533075de6ad5e9b5234f23a5e62bbecb77e18afc444d91192d63a6148258",
|
|
85
|
+
"bytes": 111640948,
|
|
86
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-darwin-x64-node26-abi147.tar.gz.sigstore.json",
|
|
87
|
+
"attestationSha256": "b2063412147d156e1583dc97f885c35891a6da389a1bb60d12a4c153852eefc4",
|
|
88
|
+
"attestationBytes": 11546,
|
|
89
|
+
"metadataSha256": "1c3393f40eb700aa024388a226db6b5588ba2cbf8ff5b3d638358673c49d0f69",
|
|
89
90
|
"nativeToolchain": {
|
|
90
91
|
"schemaVersion": 1,
|
|
91
92
|
"builder": "github-hosted:macos-15-intel:macos15:20260720.0353.1:X64",
|
|
@@ -106,45 +107,46 @@
|
|
|
106
107
|
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
107
108
|
"npm_config_build_from_source": "true"
|
|
108
109
|
},
|
|
109
|
-
"nodeDistributionFile": "node-
|
|
110
|
-
"nodeDistributionSha256": "
|
|
111
|
-
"nodeHeadersFile": "node-
|
|
112
|
-
"nodeHeadersSha256": "
|
|
110
|
+
"nodeDistributionFile": "node-v26.5.0-darwin-x64.tar.gz",
|
|
111
|
+
"nodeDistributionSha256": "98293394c945a24e64e00b4177bf075ec963ea70b34d1d2e24bd4a71716d334f",
|
|
112
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
113
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
113
114
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
114
115
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
115
116
|
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
116
117
|
"sdk": "15.5"
|
|
117
118
|
},
|
|
118
|
-
"dependencyTreeSha256": "
|
|
119
|
+
"dependencyTreeSha256": "f0e38ec7bd6fce4ce87e9ccfa82ba66b52693430bc9597991e4428aaf7567f4e",
|
|
119
120
|
"dependencyPackages": 459,
|
|
120
121
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
121
122
|
"archiveValidation": {
|
|
122
123
|
"policy": "agenc-runtime-archive-v1",
|
|
123
|
-
"entries":
|
|
124
|
-
"uncompressedBytes":
|
|
124
|
+
"entries": 28856,
|
|
125
|
+
"uncompressedBytes": 453013504
|
|
125
126
|
},
|
|
126
|
-
"minimumMacosVersion": "
|
|
127
|
+
"minimumMacosVersion": "13.5",
|
|
127
128
|
"bins": {
|
|
128
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
129
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
130
|
+
"node": "node_modules/.agenc-node/bin/node"
|
|
129
131
|
}
|
|
130
132
|
},
|
|
131
133
|
{
|
|
132
134
|
"platform": "linux",
|
|
133
135
|
"arch": "arm64",
|
|
134
|
-
"runtimeVersion": "0.
|
|
135
|
-
"nodeMajor":
|
|
136
|
-
"nodeModuleAbi": "
|
|
136
|
+
"runtimeVersion": "0.11.2",
|
|
137
|
+
"nodeMajor": 26,
|
|
138
|
+
"nodeModuleAbi": "147",
|
|
137
139
|
"nodeApiVersion": "10",
|
|
138
|
-
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
139
|
-
"sha256": "
|
|
140
|
-
"bytes":
|
|
141
|
-
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
142
|
-
"attestationSha256": "
|
|
143
|
-
"attestationBytes":
|
|
144
|
-
"metadataSha256": "
|
|
140
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-linux-arm64-node26-abi147.tar.gz",
|
|
141
|
+
"sha256": "f3dc6bf5706ee27374759786998279670f20ee776e36956fa8f3227d6032592b",
|
|
142
|
+
"bytes": 123368621,
|
|
143
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-linux-arm64-node26-abi147.tar.gz.sigstore.json",
|
|
144
|
+
"attestationSha256": "ac319b5145384742aa0916b880246c3fa41f0e2293a8a58cf08e95fd2f900b6a",
|
|
145
|
+
"attestationBytes": 11401,
|
|
146
|
+
"metadataSha256": "8ff0b13e01ff446e614cf3c439b8cf224c35434904e3aa29d22b8a41822cc27f",
|
|
145
147
|
"nativeToolchain": {
|
|
146
148
|
"schemaVersion": 1,
|
|
147
|
-
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:
|
|
149
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:3739ba86a1767e0ed5cc94eaf235ae3d1d9709ab45880c7dca366283068f8e19",
|
|
148
150
|
"runnerArch": "ARM64",
|
|
149
151
|
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
150
152
|
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
@@ -157,15 +159,15 @@
|
|
|
157
159
|
"npm_config_build_from_source": "true",
|
|
158
160
|
"npm_config_python": "/usr/bin/python3.12"
|
|
159
161
|
},
|
|
160
|
-
"nodeDistributionFile": "node-
|
|
161
|
-
"nodeDistributionSha256": "
|
|
162
|
-
"nodeHeadersFile": "node-
|
|
163
|
-
"nodeHeadersSha256": "
|
|
162
|
+
"nodeDistributionFile": "node-v26.5.0-linux-arm64.tar.gz",
|
|
163
|
+
"nodeDistributionSha256": "308e5fe89a82461ba5a6cf15ff5221b2cdbd7ae87600aa72bb3c3fbdc66412d1",
|
|
164
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
165
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
164
166
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
165
167
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
166
168
|
"rpmContentInventorySchemaVersion": 1,
|
|
167
169
|
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
168
|
-
"rpmContentInventorySha256": "
|
|
170
|
+
"rpmContentInventorySha256": "3739ba86a1767e0ed5cc94eaf235ae3d1d9709ab45880c7dca366283068f8e19",
|
|
169
171
|
"rpmSigningKeyIds": [
|
|
170
172
|
"15af5dac6d745a60"
|
|
171
173
|
],
|
|
@@ -175,44 +177,47 @@
|
|
|
175
177
|
"git-2.43.7-1.el8_10",
|
|
176
178
|
"gzip-1.9-13.el8_5",
|
|
177
179
|
"libatomic-8.5.0-28.el8_10",
|
|
180
|
+
"libgcc-8.5.0-28.el8_10",
|
|
178
181
|
"make-4.2.1-11.el8",
|
|
179
182
|
"python3.12-3.12.13-2.el8_10",
|
|
180
183
|
"tar-1.30-11.el8_10"
|
|
181
184
|
]
|
|
182
185
|
},
|
|
183
|
-
"dependencyTreeSha256": "
|
|
186
|
+
"dependencyTreeSha256": "0c30dc09aaa3dcd95d71054fdff1d13976c4f6be8c8ef188ba31d67c33e60d58",
|
|
184
187
|
"dependencyPackages": 461,
|
|
185
188
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
186
189
|
"archiveValidation": {
|
|
187
190
|
"policy": "agenc-runtime-archive-v1",
|
|
188
|
-
"entries":
|
|
189
|
-
"uncompressedBytes":
|
|
191
|
+
"entries": 28875,
|
|
192
|
+
"uncompressedBytes": 471250944
|
|
190
193
|
},
|
|
191
194
|
"libcFamily": "glibc",
|
|
192
195
|
"minimumGlibcVersion": "2.28",
|
|
193
196
|
"minimumGlibcxxVersion": "3.4.22",
|
|
194
197
|
"minimumCxxAbiVersion": "1.3.11",
|
|
195
198
|
"bins": {
|
|
196
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
199
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
200
|
+
"node": "node_modules/.agenc-node/bin/node",
|
|
201
|
+
"nodeLibrary": "node_modules/.agenc-node/lib"
|
|
197
202
|
}
|
|
198
203
|
},
|
|
199
204
|
{
|
|
200
205
|
"platform": "linux",
|
|
201
206
|
"arch": "x64",
|
|
202
|
-
"runtimeVersion": "0.
|
|
203
|
-
"nodeMajor":
|
|
204
|
-
"nodeModuleAbi": "
|
|
207
|
+
"runtimeVersion": "0.11.2",
|
|
208
|
+
"nodeMajor": 26,
|
|
209
|
+
"nodeModuleAbi": "147",
|
|
205
210
|
"nodeApiVersion": "10",
|
|
206
|
-
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
207
|
-
"sha256": "
|
|
208
|
-
"bytes":
|
|
209
|
-
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
210
|
-
"attestationSha256": "
|
|
211
|
-
"attestationBytes":
|
|
212
|
-
"metadataSha256": "
|
|
211
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-linux-x64-node26-abi147.tar.gz",
|
|
212
|
+
"sha256": "f72a3dadf3f7bad44bfe952302a976e5b71f34fd8732879acb0db668b661e563",
|
|
213
|
+
"bytes": 122720210,
|
|
214
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-linux-x64-node26-abi147.tar.gz.sigstore.json",
|
|
215
|
+
"attestationSha256": "df8f6d55715bdb845442397d7cac94db59198d87186bd0466e5aede888b718c8",
|
|
216
|
+
"attestationBytes": 11589,
|
|
217
|
+
"metadataSha256": "59aa4021bae66b80972770f0ef1e517297d24b83ec8f8aead7426035788c8116",
|
|
213
218
|
"nativeToolchain": {
|
|
214
219
|
"schemaVersion": 1,
|
|
215
|
-
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:
|
|
220
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:0cf2f72faf2019701463fabc01a78c0cc893d51b2517fc7f4ce7cd65e76c2b02",
|
|
216
221
|
"runnerArch": "X64",
|
|
217
222
|
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
218
223
|
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
@@ -225,15 +230,15 @@
|
|
|
225
230
|
"npm_config_build_from_source": "true",
|
|
226
231
|
"npm_config_python": "/usr/bin/python3.12"
|
|
227
232
|
},
|
|
228
|
-
"nodeDistributionFile": "node-
|
|
229
|
-
"nodeDistributionSha256": "
|
|
230
|
-
"nodeHeadersFile": "node-
|
|
231
|
-
"nodeHeadersSha256": "
|
|
233
|
+
"nodeDistributionFile": "node-v26.5.0-linux-x64.tar.gz",
|
|
234
|
+
"nodeDistributionSha256": "22b5f47ad6ae78837e4c2b846019965ce1a06ba143de176102294a1bf44fc677",
|
|
235
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
236
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
232
237
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
233
238
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
234
239
|
"rpmContentInventorySchemaVersion": 1,
|
|
235
240
|
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
236
|
-
"rpmContentInventorySha256": "
|
|
241
|
+
"rpmContentInventorySha256": "0cf2f72faf2019701463fabc01a78c0cc893d51b2517fc7f4ce7cd65e76c2b02",
|
|
237
242
|
"rpmSigningKeyIds": [
|
|
238
243
|
"15af5dac6d745a60"
|
|
239
244
|
],
|
|
@@ -243,41 +248,44 @@
|
|
|
243
248
|
"git-2.43.7-1.el8_10",
|
|
244
249
|
"gzip-1.9-13.el8_5",
|
|
245
250
|
"libatomic-8.5.0-28.el8_10",
|
|
251
|
+
"libgcc-8.5.0-28.el8_10",
|
|
246
252
|
"make-4.2.1-11.el8",
|
|
247
253
|
"python3.12-3.12.13-2.el8_10",
|
|
248
254
|
"tar-1.30-11.el8_10"
|
|
249
255
|
]
|
|
250
256
|
},
|
|
251
|
-
"dependencyTreeSha256": "
|
|
257
|
+
"dependencyTreeSha256": "913b59c11c69d5cf76adf08344b197942979d544734998596866a6d8c8a1e852",
|
|
252
258
|
"dependencyPackages": 461,
|
|
253
259
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
254
260
|
"archiveValidation": {
|
|
255
261
|
"policy": "agenc-runtime-archive-v1",
|
|
256
|
-
"entries":
|
|
257
|
-
"uncompressedBytes":
|
|
262
|
+
"entries": 28875,
|
|
263
|
+
"uncompressedBytes": 471467008
|
|
258
264
|
},
|
|
259
265
|
"libcFamily": "glibc",
|
|
260
266
|
"minimumGlibcVersion": "2.28",
|
|
261
267
|
"minimumGlibcxxVersion": "3.4.22",
|
|
262
268
|
"minimumCxxAbiVersion": "1.3.11",
|
|
263
269
|
"bins": {
|
|
264
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
270
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
271
|
+
"node": "node_modules/.agenc-node/bin/node",
|
|
272
|
+
"nodeLibrary": "node_modules/.agenc-node/lib"
|
|
265
273
|
}
|
|
266
274
|
},
|
|
267
275
|
{
|
|
268
276
|
"platform": "win",
|
|
269
277
|
"arch": "x64",
|
|
270
|
-
"runtimeVersion": "0.
|
|
271
|
-
"nodeMajor":
|
|
272
|
-
"nodeModuleAbi": "
|
|
278
|
+
"runtimeVersion": "0.11.2",
|
|
279
|
+
"nodeMajor": 26,
|
|
280
|
+
"nodeModuleAbi": "147",
|
|
273
281
|
"nodeApiVersion": "10",
|
|
274
|
-
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
275
|
-
"sha256": "
|
|
276
|
-
"bytes":
|
|
277
|
-
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.
|
|
278
|
-
"attestationSha256": "
|
|
279
|
-
"attestationBytes":
|
|
280
|
-
"metadataSha256": "
|
|
282
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-win-x64-node26-abi147.tar.gz",
|
|
283
|
+
"sha256": "a7733493f40b681600be2f9298eadcb3bf17bf9bb9d3884ae309b666d23fa0f6",
|
|
284
|
+
"bytes": 105885523,
|
|
285
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.11.2/agenc-runtime-0.11.2-win-x64-node26-abi147.tar.gz.sigstore.json",
|
|
286
|
+
"attestationSha256": "1692c6e39f38d10c7a9e6499dad107e20f81984f4058e2d14ae595203f8b5468",
|
|
287
|
+
"attestationBytes": 11257,
|
|
288
|
+
"metadataSha256": "60b7ad39481cd661349eebc00c3d197136ab502ff68d1bfc8d3353fcd9031925",
|
|
281
289
|
"nativeToolchain": {
|
|
282
290
|
"schemaVersion": 1,
|
|
283
291
|
"builder": "github-hosted:windows-2025:win25-vs2026:20260714.173.1:X64",
|
|
@@ -298,16 +306,16 @@
|
|
|
298
306
|
"_LINK_": "/DEBUG:NONE /INCREMENTAL:NO /Brepro",
|
|
299
307
|
"npm_config_build_from_source": "true"
|
|
300
308
|
},
|
|
301
|
-
"nodeDistributionFile": "node-
|
|
302
|
-
"nodeDistributionSha256": "
|
|
303
|
-
"nodeHeadersFile": "node-
|
|
304
|
-
"nodeHeadersSha256": "
|
|
309
|
+
"nodeDistributionFile": "node-v26.5.0-win-x64.zip",
|
|
310
|
+
"nodeDistributionSha256": "d3b2277dbcccfdf24ef6302928f64f484cff1d77a6d3caa3a28f4d20ce9158f6",
|
|
311
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
312
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
305
313
|
"nodeImportLibraryFile": "node.lib",
|
|
306
|
-
"nodeImportLibrarySha256": "
|
|
307
|
-
"nodeImportLibraryBytes":
|
|
314
|
+
"nodeImportLibrarySha256": "56f06350037085fce04930befd98327afc86ee46f52af6f6f8a68a03630e8380",
|
|
315
|
+
"nodeImportLibraryBytes": 3026982,
|
|
308
316
|
"nodeCommonGypiFile": "include/node/common.gypi",
|
|
309
|
-
"nodeCommonGypiSourceSha256": "
|
|
310
|
-
"nodeCommonGypiReleaseSha256": "
|
|
317
|
+
"nodeCommonGypiSourceSha256": "48c0c45ddfcf0de738fd7d9fc23c02768f2816686e099027af6373bd062e53b7",
|
|
318
|
+
"nodeCommonGypiReleaseSha256": "ddeb29bbdbcd29a167aa4799794c4a5c56222184f06361d8a2c0bfc310d9b266",
|
|
311
319
|
"nodeCommonGypiTransformation": "disable-debug-information-and-full-paths",
|
|
312
320
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
313
321
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
@@ -319,16 +327,17 @@
|
|
|
319
327
|
"msvcCompilerSha256": "dc8426b8760d92cf757df3d10b9f0244a95b454ff43194a58161568a0ec70d53",
|
|
320
328
|
"msvcLinkerSha256": "e8c524347b8bc87fba790d254c8a3b902bf1a4b63807093b816d992940af3791"
|
|
321
329
|
},
|
|
322
|
-
"dependencyTreeSha256": "
|
|
330
|
+
"dependencyTreeSha256": "53c3d983af300b03669839eb692c1b9807f1b95218a367242f5fe8a4689f7a3b",
|
|
323
331
|
"dependencyPackages": 458,
|
|
324
332
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
325
333
|
"archiveValidation": {
|
|
326
334
|
"policy": "agenc-runtime-archive-v1",
|
|
327
|
-
"entries":
|
|
328
|
-
"uncompressedBytes":
|
|
335
|
+
"entries": 28894,
|
|
336
|
+
"uncompressedBytes": 412326912
|
|
329
337
|
},
|
|
330
338
|
"bins": {
|
|
331
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
339
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
340
|
+
"node": "node_modules/.agenc-node/node.exe"
|
|
332
341
|
}
|
|
333
342
|
}
|
|
334
343
|
]
|
|
@@ -6,6 +6,7 @@ export interface GeneratedWrapper {
|
|
|
6
6
|
readonly nodeBin: string;
|
|
7
7
|
readonly runtimeBin: string;
|
|
8
8
|
readonly agencHome: string;
|
|
9
|
+
readonly nodeLibraryPath?: string;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export const GENERATED_WRAPPER_MAX_BYTES: number;
|
|
@@ -15,6 +16,7 @@ export function renderGeneratedWrapperContent(wrapper: {
|
|
|
15
16
|
readonly nodeBin: string;
|
|
16
17
|
readonly runtimeBin: string;
|
|
17
18
|
readonly agencHome: string;
|
|
19
|
+
readonly nodeLibraryPath?: string;
|
|
18
20
|
}): string;
|
|
19
21
|
|
|
20
22
|
export function parseGeneratedWrapperContent(
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// updater and both embedded installers. Parsing is deliberately full-file:
|
|
3
3
|
// marker substrings must never grant ownership of a user-authored executable.
|
|
4
4
|
|
|
5
|
-
import { isAbsolute } from "node:path";
|
|
5
|
+
import { isAbsolute, posix, win32 } from "node:path";
|
|
6
6
|
|
|
7
7
|
export const GENERATED_WRAPPER_MAX_BYTES = 64 * 1024;
|
|
8
8
|
const POSIX_WRAPPER_SIGNATURE = "Generated by AgenC install.sh";
|
|
@@ -24,14 +24,32 @@ function validateValues(kind, values) {
|
|
|
24
24
|
if (!isAbsolute(values.agencHome)) {
|
|
25
25
|
throw new Error("wrapper AGENC_HOME must be an absolute path");
|
|
26
26
|
}
|
|
27
|
+
if (values.nodeLibraryPath !== undefined) {
|
|
28
|
+
if (typeof values.nodeLibraryPath !== "string") {
|
|
29
|
+
throw new TypeError("wrapper nodeLibraryPath must be a string");
|
|
30
|
+
}
|
|
31
|
+
if (values.nodeLibraryPath.includes("\0")) {
|
|
32
|
+
throw new Error("wrapper nodeLibraryPath contains NUL");
|
|
33
|
+
}
|
|
34
|
+
if (!isAbsolute(values.nodeLibraryPath)) {
|
|
35
|
+
throw new Error("wrapper nodeLibraryPath must be an absolute path");
|
|
36
|
+
}
|
|
37
|
+
if (kind === "cmd") {
|
|
38
|
+
throw new Error("Windows wrappers do not support nodeLibraryPath");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
27
41
|
}
|
|
28
42
|
|
|
29
43
|
function metadataFor(values) {
|
|
30
|
-
|
|
44
|
+
const metadata = {
|
|
31
45
|
nodeBin: values.nodeBin,
|
|
32
46
|
runtimeBin: values.runtimeBin,
|
|
33
47
|
agencHome: values.agencHome,
|
|
34
|
-
|
|
48
|
+
...(values.nodeLibraryPath === undefined
|
|
49
|
+
? {}
|
|
50
|
+
: { nodeLibraryPath: values.nodeLibraryPath }),
|
|
51
|
+
};
|
|
52
|
+
return Buffer.from(JSON.stringify(metadata), "utf8").toString("base64url");
|
|
35
53
|
}
|
|
36
54
|
|
|
37
55
|
function renderLegacyOomPosixWrapper({ nodeBin, runtimeBin, agencHome }) {
|
|
@@ -58,26 +76,38 @@ function renderLegacyOomPosixWrapper({ nodeBin, runtimeBin, agencHome }) {
|
|
|
58
76
|
].join("\n");
|
|
59
77
|
}
|
|
60
78
|
|
|
61
|
-
export function renderGeneratedWrapperContent({
|
|
79
|
+
export function renderGeneratedWrapperContent({
|
|
80
|
+
kind,
|
|
81
|
+
nodeBin,
|
|
82
|
+
runtimeBin,
|
|
83
|
+
agencHome,
|
|
84
|
+
nodeLibraryPath,
|
|
85
|
+
}) {
|
|
62
86
|
if (kind !== "posix" && kind !== "cmd") {
|
|
63
87
|
throw new TypeError(`unsupported wrapper kind: ${String(kind)}`);
|
|
64
88
|
}
|
|
65
|
-
const values = { nodeBin, runtimeBin, agencHome };
|
|
89
|
+
const values = { nodeBin, runtimeBin, agencHome, nodeLibraryPath };
|
|
66
90
|
validateValues(kind, values);
|
|
67
91
|
const metadata = metadataFor(values);
|
|
68
92
|
if (kind === "cmd") {
|
|
69
93
|
const batch = (value) => value.replaceAll("%", "%%");
|
|
94
|
+
const nodeDir = win32.dirname(nodeBin);
|
|
70
95
|
return [
|
|
71
96
|
"@echo off",
|
|
72
97
|
"setlocal DisableDelayedExpansion",
|
|
73
98
|
`rem ${CMD_WRAPPER_SIGNATURE} - rewritten on every install/upgrade.`,
|
|
74
99
|
`rem ${WRAPPER_METADATA_PREFIX} ${metadata}`,
|
|
75
100
|
`if not defined AGENC_HOME set "AGENC_HOME=${batch(agencHome)}"`,
|
|
101
|
+
`set "PATH=${batch(nodeDir)};%PATH%"`,
|
|
76
102
|
`"${batch(nodeBin)}" "${batch(runtimeBin)}" %*`,
|
|
77
103
|
"",
|
|
78
104
|
].join("\r\n");
|
|
79
105
|
}
|
|
80
106
|
const quote = (value) => `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
107
|
+
const nodeDir = posix.dirname(nodeBin);
|
|
108
|
+
const execPrefix = nodeLibraryPath === undefined
|
|
109
|
+
? "exec "
|
|
110
|
+
: `LD_LIBRARY_PATH=${quote(nodeLibraryPath)} exec `;
|
|
81
111
|
return [
|
|
82
112
|
"#!/bin/sh",
|
|
83
113
|
`# ${POSIX_WRAPPER_SIGNATURE} — rewritten on every install/upgrade.`,
|
|
@@ -85,14 +115,19 @@ export function renderGeneratedWrapperContent({ kind, nodeBin, runtimeBin, agenc
|
|
|
85
115
|
'if [ -z "${AGENC_HOME:-}" ]; then',
|
|
86
116
|
` export AGENC_HOME=${quote(agencHome)}`,
|
|
87
117
|
"fi",
|
|
118
|
+
'if [ -n "${PATH:-}" ]; then',
|
|
119
|
+
` export PATH=${quote(nodeDir)}:"$PATH"`,
|
|
120
|
+
"else",
|
|
121
|
+
` export PATH=${quote(nodeDir)}`,
|
|
122
|
+
"fi",
|
|
88
123
|
"# Capture one V8 near-heap-limit snapshot unless the operator already configured it.",
|
|
89
124
|
'case " ${NODE_OPTIONS:-} " in',
|
|
90
125
|
" *heapsnapshot-near-heap-limit*)",
|
|
91
|
-
`
|
|
126
|
+
` ${execPrefix}${quote(nodeBin)} ${quote(runtimeBin)} "$@"`,
|
|
92
127
|
" ;;",
|
|
93
128
|
" *)",
|
|
94
129
|
' mkdir -p "${AGENC_HOME}/oom-snapshots" 2>/dev/null || :',
|
|
95
|
-
`
|
|
130
|
+
` ${execPrefix}${quote(nodeBin)} --heapsnapshot-near-heap-limit=1 ` +
|
|
96
131
|
'--diagnostic-dir="${AGENC_HOME}/oom-snapshots" ' +
|
|
97
132
|
`${quote(runtimeBin)} "$@"`,
|
|
98
133
|
" ;;",
|
|
@@ -108,16 +143,25 @@ function decodeCanonicalMetadata(encoded) {
|
|
|
108
143
|
const decoded = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
109
144
|
const value = JSON.parse(decoded);
|
|
110
145
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return undefined;
|
|
146
|
+
const keys = Object.keys(value);
|
|
147
|
+
const expectedKeys = value.nodeLibraryPath === undefined
|
|
148
|
+
? ["nodeBin", "runtimeBin", "agencHome"]
|
|
149
|
+
: ["nodeBin", "runtimeBin", "agencHome", "nodeLibraryPath"];
|
|
111
150
|
if (
|
|
112
|
-
|
|
151
|
+
keys.length !== expectedKeys.length ||
|
|
152
|
+
!expectedKeys.every((key, index) => keys[index] === key) ||
|
|
113
153
|
typeof value.nodeBin !== "string" ||
|
|
114
154
|
typeof value.runtimeBin !== "string" ||
|
|
115
|
-
typeof value.agencHome !== "string"
|
|
155
|
+
typeof value.agencHome !== "string" ||
|
|
156
|
+
(value.nodeLibraryPath !== undefined && typeof value.nodeLibraryPath !== "string")
|
|
116
157
|
) return undefined;
|
|
117
158
|
return {
|
|
118
159
|
nodeBin: value.nodeBin,
|
|
119
160
|
runtimeBin: value.runtimeBin,
|
|
120
161
|
agencHome: value.agencHome,
|
|
162
|
+
...(value.nodeLibraryPath === undefined
|
|
163
|
+
? {}
|
|
164
|
+
: { nodeLibraryPath: value.nodeLibraryPath }),
|
|
121
165
|
};
|
|
122
166
|
} catch {
|
|
123
167
|
return undefined;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface RuntimeArchiveMember {
|
|
2
|
+
readonly path: string;
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly bytes: number;
|
|
5
|
+
readonly mode: number;
|
|
6
|
+
readonly contentSha256: string;
|
|
7
|
+
readonly recordSha256: string;
|
|
8
|
+
readonly linkPath?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface RuntimeArchiveInventory {
|
|
12
|
+
readonly entries: number;
|
|
13
|
+
readonly uncompressedBytes: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface RuntimeArchiveContentInventory extends RuntimeArchiveInventory {
|
|
17
|
+
readonly members: readonly RuntimeArchiveMember[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface EmbeddedNodeIdentity {
|
|
21
|
+
readonly schemaVersion: 1;
|
|
22
|
+
readonly nodeVersion: string;
|
|
23
|
+
readonly nodeMajor: number;
|
|
24
|
+
readonly nodeModuleAbi: string;
|
|
25
|
+
readonly nodeApiVersion: string;
|
|
26
|
+
readonly executable: string;
|
|
27
|
+
readonly executableSha256: string;
|
|
28
|
+
readonly executableBytes: number;
|
|
29
|
+
readonly license: string;
|
|
30
|
+
readonly licenseSha256: string;
|
|
31
|
+
readonly licenseBytes: number;
|
|
32
|
+
readonly libatomic?: string;
|
|
33
|
+
readonly libatomicSha256?: string;
|
|
34
|
+
readonly libatomicBytes?: number;
|
|
35
|
+
readonly libatomicLicense?: string;
|
|
36
|
+
readonly libatomicLicenseSha256?: string;
|
|
37
|
+
readonly libatomicLicenseBytes?: number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface EmbeddedNodeRuntimeArchiveInventory
|
|
41
|
+
extends RuntimeArchiveContentInventory {
|
|
42
|
+
readonly embeddedNodeIdentity: Readonly<EmbeddedNodeIdentity>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function validateRuntimeArchive(
|
|
46
|
+
path: string,
|
|
47
|
+
platform?: string,
|
|
48
|
+
): RuntimeArchiveInventory;
|
|
49
|
+
|
|
50
|
+
export function runtimeArchiveContentInventory(
|
|
51
|
+
path: string,
|
|
52
|
+
platform?: string,
|
|
53
|
+
): RuntimeArchiveContentInventory;
|
|
54
|
+
|
|
55
|
+
export function validateEmbeddedNodeRuntimeArchive(
|
|
56
|
+
path: string,
|
|
57
|
+
platform?: string,
|
|
58
|
+
): EmbeddedNodeRuntimeArchiveInventory;
|