@tetsuo-ai/agenc 0.10.0 → 0.13.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.
- package/generated/agenc-runtime-manifest-v2.json +152 -119
- package/lib/generated-wrapper.d.mts +2 -0
- package/lib/generated-wrapper.mjs +113 -8
- 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 +55 -1
- package/lib/runtime-release-contract.mjs +199 -5
- package/package.json +3 -2
- package/src/launcher.mjs +104 -12
|
@@ -1,41 +1,53 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": 2,
|
|
3
|
-
"runtimeVersion": "0.
|
|
3
|
+
"runtimeVersion": "0.13.0",
|
|
4
4
|
"releaseRepository": "tetsuo-ai/agenc-releases",
|
|
5
|
-
"releaseTag": "agenc-v0.
|
|
5
|
+
"releaseTag": "agenc-v0.13.0",
|
|
6
6
|
"build": {
|
|
7
|
-
"sourceCommit": "
|
|
8
|
-
"sourceRef": "refs/tags/agenc-v0.
|
|
9
|
-
"sourceDateEpoch":
|
|
10
|
-
"lockfileSha256": "
|
|
11
|
-
"nodeVersion": "
|
|
12
|
-
"nodeMajor":
|
|
13
|
-
"nodeModuleAbi": "
|
|
7
|
+
"sourceCommit": "929d3ccc9f3d3524704503e28a43fb567147dbe5",
|
|
8
|
+
"sourceRef": "refs/tags/agenc-v0.13.0",
|
|
9
|
+
"sourceDateEpoch": 1785489827,
|
|
10
|
+
"lockfileSha256": "bb806a1a762aed6d1a4beaed8e1a06eb073e3f32bf6215429b6c8016d99b7432",
|
|
11
|
+
"nodeVersion": "v26.5.0",
|
|
12
|
+
"nodeMajor": 26,
|
|
13
|
+
"nodeModuleAbi": "147",
|
|
14
14
|
"nodeApiVersion": "10",
|
|
15
15
|
"npmVersion": "11.17.0",
|
|
16
|
-
"artifactProfile": "release"
|
|
16
|
+
"artifactProfile": "release",
|
|
17
|
+
"releaseCandidate": {
|
|
18
|
+
"workflow": "release-runtime.yml",
|
|
19
|
+
"runId": 30620942433,
|
|
20
|
+
"runAttempt": 1,
|
|
21
|
+
"runUrl": "https://github.com/tetsuo-ai/agenc-core/actions/runs/30620942433",
|
|
22
|
+
"phase": "candidate",
|
|
23
|
+
"sourceRef": "refs/heads/main",
|
|
24
|
+
"evidenceSha256": "70be4e8aaac5a141f96f91d978c5c48a1011688caaeb5edd652ebdbb0638cb48"
|
|
25
|
+
}
|
|
17
26
|
},
|
|
18
27
|
"artifacts": [
|
|
19
28
|
{
|
|
20
29
|
"platform": "darwin",
|
|
21
30
|
"arch": "arm64",
|
|
22
|
-
"runtimeVersion": "0.
|
|
23
|
-
"nodeMajor":
|
|
24
|
-
"nodeModuleAbi": "
|
|
31
|
+
"runtimeVersion": "0.13.0",
|
|
32
|
+
"nodeMajor": 26,
|
|
33
|
+
"nodeModuleAbi": "147",
|
|
25
34
|
"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
|
-
"
|
|
35
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-arm64-node26-abi147.tar.gz",
|
|
36
|
+
"sha256": "bc770395e0a39cc7a2a9c0b6d14fb9bc2f052333c49aab247583716293259ffe",
|
|
37
|
+
"bytes": 113442270,
|
|
38
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-arm64-node26-abi147.tar.gz.sigstore.json",
|
|
39
|
+
"attestationSha256": "04861f183af336e7be27cf8028ff70c3aea5334517a030cc7322a34fe8a9891f",
|
|
40
|
+
"attestationBytes": 11260,
|
|
41
|
+
"buildProvenanceUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-arm64-node26-abi147.tar.gz.build.sigstore.json",
|
|
42
|
+
"buildProvenanceSha256": "04f97d158cd818d306bca1daae1d4e57c6fa5ae8e95d007e2c8775bf7113ea3c",
|
|
43
|
+
"buildProvenanceBytes": 11060,
|
|
44
|
+
"metadataSha256": "171db3c80a8aec9b50697c4f03780c57fe9c7cce6f41e2f227733acf7c539b7c",
|
|
33
45
|
"nativeToolchain": {
|
|
34
46
|
"schemaVersion": 1,
|
|
35
|
-
"builder": "github-hosted:macos-15:macos15:
|
|
47
|
+
"builder": "github-hosted:macos-15:macos15:20260727.0256.1:ARM64",
|
|
36
48
|
"runnerLabel": "macos-15",
|
|
37
49
|
"runnerImage": "macos15",
|
|
38
|
-
"runnerImageVersion": "
|
|
50
|
+
"runnerImageVersion": "20260727.0256.1",
|
|
39
51
|
"runnerArch": "ARM64",
|
|
40
52
|
"cc": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
41
53
|
"cxx": "Apple clang version 17.0.0 (clang-1700.0.13.5)",
|
|
@@ -50,42 +62,46 @@
|
|
|
50
62
|
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
51
63
|
"npm_config_build_from_source": "true"
|
|
52
64
|
},
|
|
53
|
-
"nodeDistributionFile": "node-
|
|
54
|
-
"nodeDistributionSha256": "
|
|
55
|
-
"nodeHeadersFile": "node-
|
|
56
|
-
"nodeHeadersSha256": "
|
|
65
|
+
"nodeDistributionFile": "node-v26.5.0-darwin-arm64.tar.gz",
|
|
66
|
+
"nodeDistributionSha256": "ee920559aaa2391569cff4d737e3b83963430e3a14dedd91bfe0ff53171b5af9",
|
|
67
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
68
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
57
69
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
58
70
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
59
71
|
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
60
72
|
"sdk": "15.5"
|
|
61
73
|
},
|
|
62
|
-
"dependencyTreeSha256": "
|
|
63
|
-
"dependencyPackages":
|
|
74
|
+
"dependencyTreeSha256": "afcd562b369a62b9a4a6d0877a93559c5f69f5024c1959c3631f60005b3402e5",
|
|
75
|
+
"dependencyPackages": 467,
|
|
64
76
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
65
77
|
"archiveValidation": {
|
|
66
78
|
"policy": "agenc-runtime-archive-v1",
|
|
67
|
-
"entries":
|
|
68
|
-
"uncompressedBytes":
|
|
79
|
+
"entries": 29260,
|
|
80
|
+
"uncompressedBytes": 461165056
|
|
69
81
|
},
|
|
70
|
-
"minimumMacosVersion": "
|
|
82
|
+
"minimumMacosVersion": "13.5",
|
|
71
83
|
"bins": {
|
|
72
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
84
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
85
|
+
"node": "node_modules/.agenc-node/bin/node"
|
|
73
86
|
}
|
|
74
87
|
},
|
|
75
88
|
{
|
|
76
89
|
"platform": "darwin",
|
|
77
90
|
"arch": "x64",
|
|
78
|
-
"runtimeVersion": "0.
|
|
79
|
-
"nodeMajor":
|
|
80
|
-
"nodeModuleAbi": "
|
|
91
|
+
"runtimeVersion": "0.13.0",
|
|
92
|
+
"nodeMajor": 26,
|
|
93
|
+
"nodeModuleAbi": "147",
|
|
81
94
|
"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
|
-
"
|
|
95
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-x64-node26-abi147.tar.gz",
|
|
96
|
+
"sha256": "e51de8150181b803ccfabcd071fed0ee52a3710fb877db3c5f440bca717d23f2",
|
|
97
|
+
"bytes": 115171362,
|
|
98
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-x64-node26-abi147.tar.gz.sigstore.json",
|
|
99
|
+
"attestationSha256": "fb33580c42d3fdfefaa0a23e8a9364a16f3bc5265062d44f4808f8b9c8a50461",
|
|
100
|
+
"attestationBytes": 11444,
|
|
101
|
+
"buildProvenanceUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-darwin-x64-node26-abi147.tar.gz.build.sigstore.json",
|
|
102
|
+
"buildProvenanceSha256": "d52293802b97c4e665ad843169b52900c2c4493754dd26d9157860d17faab028",
|
|
103
|
+
"buildProvenanceBytes": 11103,
|
|
104
|
+
"metadataSha256": "1df2a703caa7c6e8d667dca9b05169c003f11bb0de67e41813847bac55e2be31",
|
|
89
105
|
"nativeToolchain": {
|
|
90
106
|
"schemaVersion": 1,
|
|
91
107
|
"builder": "github-hosted:macos-15-intel:macos15:20260720.0353.1:X64",
|
|
@@ -106,45 +122,49 @@
|
|
|
106
122
|
"SDKROOT": "/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk",
|
|
107
123
|
"npm_config_build_from_source": "true"
|
|
108
124
|
},
|
|
109
|
-
"nodeDistributionFile": "node-
|
|
110
|
-
"nodeDistributionSha256": "
|
|
111
|
-
"nodeHeadersFile": "node-
|
|
112
|
-
"nodeHeadersSha256": "
|
|
125
|
+
"nodeDistributionFile": "node-v26.5.0-darwin-x64.tar.gz",
|
|
126
|
+
"nodeDistributionSha256": "98293394c945a24e64e00b4177bf075ec963ea70b34d1d2e24bd4a71716d334f",
|
|
127
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
128
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
113
129
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
114
130
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
115
131
|
"xcode": "Xcode 16.4\nBuild version 16F6",
|
|
116
132
|
"sdk": "15.5"
|
|
117
133
|
},
|
|
118
|
-
"dependencyTreeSha256": "
|
|
119
|
-
"dependencyPackages":
|
|
134
|
+
"dependencyTreeSha256": "e9ebc879904e9689d0ac629c45a64ad520e79392783f1ce67b33fb6d3266ed15",
|
|
135
|
+
"dependencyPackages": 467,
|
|
120
136
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
121
137
|
"archiveValidation": {
|
|
122
138
|
"policy": "agenc-runtime-archive-v1",
|
|
123
|
-
"entries":
|
|
124
|
-
"uncompressedBytes":
|
|
139
|
+
"entries": 29260,
|
|
140
|
+
"uncompressedBytes": 465160192
|
|
125
141
|
},
|
|
126
|
-
"minimumMacosVersion": "
|
|
142
|
+
"minimumMacosVersion": "13.5",
|
|
127
143
|
"bins": {
|
|
128
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
144
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
145
|
+
"node": "node_modules/.agenc-node/bin/node"
|
|
129
146
|
}
|
|
130
147
|
},
|
|
131
148
|
{
|
|
132
149
|
"platform": "linux",
|
|
133
150
|
"arch": "arm64",
|
|
134
|
-
"runtimeVersion": "0.
|
|
135
|
-
"nodeMajor":
|
|
136
|
-
"nodeModuleAbi": "
|
|
151
|
+
"runtimeVersion": "0.13.0",
|
|
152
|
+
"nodeMajor": 26,
|
|
153
|
+
"nodeModuleAbi": "147",
|
|
137
154
|
"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
|
-
"
|
|
155
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-arm64-node26-abi147.tar.gz",
|
|
156
|
+
"sha256": "f99ad01fe7e8c28d48536972886d6e74b7b8c81654e53ceb99057c2b13f43332",
|
|
157
|
+
"bytes": 127019738,
|
|
158
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-arm64-node26-abi147.tar.gz.sigstore.json",
|
|
159
|
+
"attestationSha256": "57b42f490a9e22c4bc640a6bea72e8d260f100e225b650a81b9fff0023548837",
|
|
160
|
+
"attestationBytes": 11405,
|
|
161
|
+
"buildProvenanceUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-arm64-node26-abi147.tar.gz.build.sigstore.json",
|
|
162
|
+
"buildProvenanceSha256": "b12f43009745aea93e106a11646cb36217b5cc4b06a48fd56f891343e3c1961f",
|
|
163
|
+
"buildProvenanceBytes": 11154,
|
|
164
|
+
"metadataSha256": "7c3b5124baea1964a71c506d64220cd38466a063762ec0ee95d6e8626bb07902",
|
|
145
165
|
"nativeToolchain": {
|
|
146
166
|
"schemaVersion": 1,
|
|
147
|
-
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:
|
|
167
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:530821a9904c1d9162750d564d89e7556575df1cbec0a54bd5029076dc58731d",
|
|
148
168
|
"runnerArch": "ARM64",
|
|
149
169
|
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
150
170
|
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
@@ -157,15 +177,15 @@
|
|
|
157
177
|
"npm_config_build_from_source": "true",
|
|
158
178
|
"npm_config_python": "/usr/bin/python3.12"
|
|
159
179
|
},
|
|
160
|
-
"nodeDistributionFile": "node-
|
|
161
|
-
"nodeDistributionSha256": "
|
|
162
|
-
"nodeHeadersFile": "node-
|
|
163
|
-
"nodeHeadersSha256": "
|
|
180
|
+
"nodeDistributionFile": "node-v26.5.0-linux-arm64.tar.gz",
|
|
181
|
+
"nodeDistributionSha256": "308e5fe89a82461ba5a6cf15ff5221b2cdbd7ae87600aa72bb3c3fbdc66412d1",
|
|
182
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
183
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
164
184
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
165
185
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
166
186
|
"rpmContentInventorySchemaVersion": 1,
|
|
167
187
|
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
168
|
-
"rpmContentInventorySha256": "
|
|
188
|
+
"rpmContentInventorySha256": "530821a9904c1d9162750d564d89e7556575df1cbec0a54bd5029076dc58731d",
|
|
169
189
|
"rpmSigningKeyIds": [
|
|
170
190
|
"15af5dac6d745a60"
|
|
171
191
|
],
|
|
@@ -175,44 +195,50 @@
|
|
|
175
195
|
"git-2.43.7-1.el8_10",
|
|
176
196
|
"gzip-1.9-13.el8_5",
|
|
177
197
|
"libatomic-8.5.0-28.el8_10",
|
|
198
|
+
"libgcc-8.5.0-28.el8_10",
|
|
178
199
|
"make-4.2.1-11.el8",
|
|
179
200
|
"python3.12-3.12.13-2.el8_10",
|
|
180
201
|
"tar-1.30-11.el8_10"
|
|
181
202
|
]
|
|
182
203
|
},
|
|
183
|
-
"dependencyTreeSha256": "
|
|
184
|
-
"dependencyPackages":
|
|
204
|
+
"dependencyTreeSha256": "522b610453270c1e5e521d504f161f78c4f69636d95e98d3767d131c32a0661b",
|
|
205
|
+
"dependencyPackages": 469,
|
|
185
206
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
186
207
|
"archiveValidation": {
|
|
187
208
|
"policy": "agenc-runtime-archive-v1",
|
|
188
|
-
"entries":
|
|
189
|
-
"uncompressedBytes":
|
|
209
|
+
"entries": 29280,
|
|
210
|
+
"uncompressedBytes": 483508224
|
|
190
211
|
},
|
|
191
212
|
"libcFamily": "glibc",
|
|
192
213
|
"minimumGlibcVersion": "2.28",
|
|
193
214
|
"minimumGlibcxxVersion": "3.4.22",
|
|
194
215
|
"minimumCxxAbiVersion": "1.3.11",
|
|
195
216
|
"bins": {
|
|
196
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
217
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
218
|
+
"node": "node_modules/.agenc-node/bin/node",
|
|
219
|
+
"nodeLibrary": "node_modules/.agenc-node/lib"
|
|
197
220
|
}
|
|
198
221
|
},
|
|
199
222
|
{
|
|
200
223
|
"platform": "linux",
|
|
201
224
|
"arch": "x64",
|
|
202
|
-
"runtimeVersion": "0.
|
|
203
|
-
"nodeMajor":
|
|
204
|
-
"nodeModuleAbi": "
|
|
225
|
+
"runtimeVersion": "0.13.0",
|
|
226
|
+
"nodeMajor": 26,
|
|
227
|
+
"nodeModuleAbi": "147",
|
|
205
228
|
"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
|
-
"
|
|
229
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-x64-node26-abi147.tar.gz",
|
|
230
|
+
"sha256": "8f555ed4063ee1a9473f220b45c192be9d56669f627619f63ad6f8db53adf20f",
|
|
231
|
+
"bytes": 126636274,
|
|
232
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-x64-node26-abi147.tar.gz.sigstore.json",
|
|
233
|
+
"attestationSha256": "44d494d025bf4d4dc944fec1094c97f9133a1b4935c0fbe678283f37f6d21a24",
|
|
234
|
+
"attestationBytes": 11448,
|
|
235
|
+
"buildProvenanceUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-linux-x64-node26-abi147.tar.gz.build.sigstore.json",
|
|
236
|
+
"buildProvenanceSha256": "694ad33bc293ebe076741884d9369f465403614d3d948f4729cf2bc942561a3a",
|
|
237
|
+
"buildProvenanceBytes": 10911,
|
|
238
|
+
"metadataSha256": "11bfeba691b492d9d790c421f91d23d5e89fdba8a70def9a50ab079130b48fa6",
|
|
213
239
|
"nativeToolchain": {
|
|
214
240
|
"schemaVersion": 1,
|
|
215
|
-
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:
|
|
241
|
+
"builder": "rockylinux@sha256:9794037624aaa6212aeada1d28861ef5e0a935adaf93e4ef79837119f2a2d04c+rpm-content-sha256:a20edbdbf94e00d0e93ce30f04167861f67b3132f388f06d2c5bb44894b6e613",
|
|
216
242
|
"runnerArch": "X64",
|
|
217
243
|
"cc": "gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
218
244
|
"cxx": "g++ (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)",
|
|
@@ -225,15 +251,15 @@
|
|
|
225
251
|
"npm_config_build_from_source": "true",
|
|
226
252
|
"npm_config_python": "/usr/bin/python3.12"
|
|
227
253
|
},
|
|
228
|
-
"nodeDistributionFile": "node-
|
|
229
|
-
"nodeDistributionSha256": "
|
|
230
|
-
"nodeHeadersFile": "node-
|
|
231
|
-
"nodeHeadersSha256": "
|
|
254
|
+
"nodeDistributionFile": "node-v26.5.0-linux-x64.tar.gz",
|
|
255
|
+
"nodeDistributionSha256": "22b5f47ad6ae78837e4c2b846019965ce1a06ba143de176102294a1bf44fc677",
|
|
256
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
257
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
232
258
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
233
259
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
234
260
|
"rpmContentInventorySchemaVersion": 1,
|
|
235
261
|
"rpmContentInventoryFormat": "name|epoch|version|release|arch|sha256header|payloaddigest|payloaddigestalgo|rsaheader-pgpsig",
|
|
236
|
-
"rpmContentInventorySha256": "
|
|
262
|
+
"rpmContentInventorySha256": "a20edbdbf94e00d0e93ce30f04167861f67b3132f388f06d2c5bb44894b6e613",
|
|
237
263
|
"rpmSigningKeyIds": [
|
|
238
264
|
"15af5dac6d745a60"
|
|
239
265
|
],
|
|
@@ -243,45 +269,51 @@
|
|
|
243
269
|
"git-2.43.7-1.el8_10",
|
|
244
270
|
"gzip-1.9-13.el8_5",
|
|
245
271
|
"libatomic-8.5.0-28.el8_10",
|
|
272
|
+
"libgcc-8.5.0-28.el8_10",
|
|
246
273
|
"make-4.2.1-11.el8",
|
|
247
274
|
"python3.12-3.12.13-2.el8_10",
|
|
248
275
|
"tar-1.30-11.el8_10"
|
|
249
276
|
]
|
|
250
277
|
},
|
|
251
|
-
"dependencyTreeSha256": "
|
|
252
|
-
"dependencyPackages":
|
|
278
|
+
"dependencyTreeSha256": "0322cf9654f6a5abc7fdd3c6a2ab2d88adb751a42aef1eb7b699ccf58046abcc",
|
|
279
|
+
"dependencyPackages": 469,
|
|
253
280
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
254
281
|
"archiveValidation": {
|
|
255
282
|
"policy": "agenc-runtime-archive-v1",
|
|
256
|
-
"entries":
|
|
257
|
-
"uncompressedBytes":
|
|
283
|
+
"entries": 29280,
|
|
284
|
+
"uncompressedBytes": 484626432
|
|
258
285
|
},
|
|
259
286
|
"libcFamily": "glibc",
|
|
260
287
|
"minimumGlibcVersion": "2.28",
|
|
261
288
|
"minimumGlibcxxVersion": "3.4.22",
|
|
262
289
|
"minimumCxxAbiVersion": "1.3.11",
|
|
263
290
|
"bins": {
|
|
264
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
291
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
292
|
+
"node": "node_modules/.agenc-node/bin/node",
|
|
293
|
+
"nodeLibrary": "node_modules/.agenc-node/lib"
|
|
265
294
|
}
|
|
266
295
|
},
|
|
267
296
|
{
|
|
268
297
|
"platform": "win",
|
|
269
298
|
"arch": "x64",
|
|
270
|
-
"runtimeVersion": "0.
|
|
271
|
-
"nodeMajor":
|
|
272
|
-
"nodeModuleAbi": "
|
|
299
|
+
"runtimeVersion": "0.13.0",
|
|
300
|
+
"nodeMajor": 26,
|
|
301
|
+
"nodeModuleAbi": "147",
|
|
273
302
|
"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
|
-
"
|
|
303
|
+
"url": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-win-x64-node26-abi147.tar.gz",
|
|
304
|
+
"sha256": "d37101e2ca68f54007633335e8a0b84d06000e0ce8ce9144923ce4ad8089b079",
|
|
305
|
+
"bytes": 109553706,
|
|
306
|
+
"attestationUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-win-x64-node26-abi147.tar.gz.sigstore.json",
|
|
307
|
+
"attestationSha256": "8e854c214c3846a33684dacae3c54124701099f4873542110622ffd6a3c531e6",
|
|
308
|
+
"attestationBytes": 11444,
|
|
309
|
+
"buildProvenanceUrl": "https://github.com/tetsuo-ai/agenc-releases/releases/download/agenc-v0.13.0/agenc-runtime-0.13.0-win-x64-node26-abi147.tar.gz.build.sigstore.json",
|
|
310
|
+
"buildProvenanceSha256": "952ef68385beea6b89fce1dcbc13e6af8f4e6374f8900a4e9263d1ced7add211",
|
|
311
|
+
"buildProvenanceBytes": 11096,
|
|
312
|
+
"metadataSha256": "4bc8b153b7d75df0939a04bb47774e80e570dd738ff23bbc3e43d1c8d831947a",
|
|
281
313
|
"nativeToolchain": {
|
|
282
314
|
"schemaVersion": 1,
|
|
283
|
-
"builder": "github-hosted:windows-2025:win25-vs2026:20260714.173.1:X64",
|
|
284
|
-
"runnerLabel": "windows-2025",
|
|
315
|
+
"builder": "github-hosted:windows-2025-vs2026:win25-vs2026:20260714.173.1:X64",
|
|
316
|
+
"runnerLabel": "windows-2025-vs2026",
|
|
285
317
|
"runnerImage": "win25-vs2026",
|
|
286
318
|
"runnerImageVersion": "20260714.173.1",
|
|
287
319
|
"runnerArch": "X64",
|
|
@@ -298,16 +330,16 @@
|
|
|
298
330
|
"_LINK_": "/DEBUG:NONE /INCREMENTAL:NO /Brepro",
|
|
299
331
|
"npm_config_build_from_source": "true"
|
|
300
332
|
},
|
|
301
|
-
"nodeDistributionFile": "node-
|
|
302
|
-
"nodeDistributionSha256": "
|
|
303
|
-
"nodeHeadersFile": "node-
|
|
304
|
-
"nodeHeadersSha256": "
|
|
333
|
+
"nodeDistributionFile": "node-v26.5.0-win-x64.zip",
|
|
334
|
+
"nodeDistributionSha256": "d3b2277dbcccfdf24ef6302928f64f484cff1d77a6d3caa3a28f4d20ce9158f6",
|
|
335
|
+
"nodeHeadersFile": "node-v26.5.0-headers.tar.gz",
|
|
336
|
+
"nodeHeadersSha256": "b02b9c5922e7fd7bae30d9e97c293059175aa9d267b81d2866d52696445b5cbd",
|
|
305
337
|
"nodeImportLibraryFile": "node.lib",
|
|
306
|
-
"nodeImportLibrarySha256": "
|
|
307
|
-
"nodeImportLibraryBytes":
|
|
338
|
+
"nodeImportLibrarySha256": "56f06350037085fce04930befd98327afc86ee46f52af6f6f8a68a03630e8380",
|
|
339
|
+
"nodeImportLibraryBytes": 3026982,
|
|
308
340
|
"nodeCommonGypiFile": "include/node/common.gypi",
|
|
309
|
-
"nodeCommonGypiSourceSha256": "
|
|
310
|
-
"nodeCommonGypiReleaseSha256": "
|
|
341
|
+
"nodeCommonGypiSourceSha256": "48c0c45ddfcf0de738fd7d9fc23c02768f2816686e099027af6373bd062e53b7",
|
|
342
|
+
"nodeCommonGypiReleaseSha256": "ddeb29bbdbcd29a167aa4799794c4a5c56222184f06361d8a2c0bfc310d9b266",
|
|
311
343
|
"nodeCommonGypiTransformation": "disable-debug-information-and-full-paths",
|
|
312
344
|
"npmDistributionFile": "npm-11.17.0.tgz",
|
|
313
345
|
"npmDistributionSha256": "b290bbb35b9e72c3ef84edbe041f28c4479c4d9ee79f555817b8caafe7ce4bba",
|
|
@@ -319,16 +351,17 @@
|
|
|
319
351
|
"msvcCompilerSha256": "dc8426b8760d92cf757df3d10b9f0244a95b454ff43194a58161568a0ec70d53",
|
|
320
352
|
"msvcLinkerSha256": "e8c524347b8bc87fba790d254c8a3b902bf1a4b63807093b816d992940af3791"
|
|
321
353
|
},
|
|
322
|
-
"dependencyTreeSha256": "
|
|
323
|
-
"dependencyPackages":
|
|
354
|
+
"dependencyTreeSha256": "c1a68082de5a43c74d9f6fdfb57e700fc405b32a54d409f395178e7da634ffbc",
|
|
355
|
+
"dependencyPackages": 466,
|
|
324
356
|
"archiveFormat": "tar+gzip; portable; utf8-byte-order; normalized-mtime",
|
|
325
357
|
"archiveValidation": {
|
|
326
358
|
"policy": "agenc-runtime-archive-v1",
|
|
327
|
-
"entries":
|
|
328
|
-
"uncompressedBytes":
|
|
359
|
+
"entries": 29299,
|
|
360
|
+
"uncompressedBytes": 425263104
|
|
329
361
|
},
|
|
330
362
|
"bins": {
|
|
331
|
-
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc"
|
|
363
|
+
"agenc": "node_modules/@tetsuo-ai/runtime/bin/agenc",
|
|
364
|
+
"node": "node_modules/.agenc-node/node.exe"
|
|
332
365
|
}
|
|
333
366
|
}
|
|
334
367
|
]
|
|
@@ -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,13 +76,86 @@ 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);
|
|
92
|
+
if (kind === "cmd") {
|
|
93
|
+
const batch = (value) => value.replaceAll("%", "%%");
|
|
94
|
+
const nodeDir = win32.dirname(nodeBin);
|
|
95
|
+
return [
|
|
96
|
+
"@echo off",
|
|
97
|
+
"setlocal DisableDelayedExpansion",
|
|
98
|
+
`rem ${CMD_WRAPPER_SIGNATURE} - rewritten on every install/upgrade.`,
|
|
99
|
+
`rem ${WRAPPER_METADATA_PREFIX} ${metadata}`,
|
|
100
|
+
`if not defined AGENC_HOME set "AGENC_HOME=${batch(agencHome)}"`,
|
|
101
|
+
`set "PATH=${batch(nodeDir)};%PATH%"`,
|
|
102
|
+
`"${batch(nodeBin)}" "${batch(runtimeBin)}" %*`,
|
|
103
|
+
"",
|
|
104
|
+
].join("\r\n");
|
|
105
|
+
}
|
|
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 `;
|
|
111
|
+
return [
|
|
112
|
+
"#!/bin/sh",
|
|
113
|
+
`# ${POSIX_WRAPPER_SIGNATURE} — rewritten on every install/upgrade.`,
|
|
114
|
+
`# ${WRAPPER_METADATA_PREFIX} ${metadata}`,
|
|
115
|
+
'if [ -z "${AGENC_HOME:-}" ]; then',
|
|
116
|
+
` export AGENC_HOME=${quote(agencHome)}`,
|
|
117
|
+
"fi",
|
|
118
|
+
'if [ -n "${PATH:-}" ]; then',
|
|
119
|
+
` export PATH=${quote(nodeDir)}:"$PATH"`,
|
|
120
|
+
"else",
|
|
121
|
+
` export PATH=${quote(nodeDir)}`,
|
|
122
|
+
"fi",
|
|
123
|
+
"# Capture one V8 near-heap-limit snapshot unless the operator already configured it.",
|
|
124
|
+
'case " ${NODE_OPTIONS:-} " in',
|
|
125
|
+
" *heapsnapshot-near-heap-limit*)",
|
|
126
|
+
` ${execPrefix}${quote(nodeBin)} ${quote(runtimeBin)} "$@"`,
|
|
127
|
+
" ;;",
|
|
128
|
+
" *)",
|
|
129
|
+
' mkdir -p "${AGENC_HOME}/oom-snapshots" 2>/dev/null || :',
|
|
130
|
+
` ${execPrefix}${quote(nodeBin)} --heapsnapshot-near-heap-limit=1 ` +
|
|
131
|
+
'--diagnostic-dir="${AGENC_HOME}/oom-snapshots" ' +
|
|
132
|
+
`${quote(runtimeBin)} "$@"`,
|
|
133
|
+
" ;;",
|
|
134
|
+
"esac",
|
|
135
|
+
"",
|
|
136
|
+
].join("\n");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Releases 0.6.2 through 0.10.0 emitted this immutable metadata-v1 shape
|
|
140
|
+
// before standalone installs carried a private Node runtime. Keep the renderer
|
|
141
|
+
// private: it exists only so ownership can be proven by exact full-file
|
|
142
|
+
// reconstruction, never by trusting the historical marker or metadata alone.
|
|
143
|
+
function renderPrePrivateNodeWrapperContent({
|
|
144
|
+
kind,
|
|
145
|
+
nodeBin,
|
|
146
|
+
runtimeBin,
|
|
147
|
+
agencHome,
|
|
148
|
+
}) {
|
|
149
|
+
if (kind !== "posix" && kind !== "cmd") {
|
|
150
|
+
throw new TypeError(`unsupported wrapper kind: ${String(kind)}`);
|
|
151
|
+
}
|
|
152
|
+
const values = { nodeBin, runtimeBin, agencHome };
|
|
153
|
+
validateValues(kind, values);
|
|
154
|
+
const metadata = Buffer.from(JSON.stringify({
|
|
155
|
+
nodeBin,
|
|
156
|
+
runtimeBin,
|
|
157
|
+
agencHome,
|
|
158
|
+
}), "utf8").toString("base64url");
|
|
68
159
|
if (kind === "cmd") {
|
|
69
160
|
const batch = (value) => value.replaceAll("%", "%%");
|
|
70
161
|
return [
|
|
@@ -108,16 +199,25 @@ function decodeCanonicalMetadata(encoded) {
|
|
|
108
199
|
const decoded = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
109
200
|
const value = JSON.parse(decoded);
|
|
110
201
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return undefined;
|
|
202
|
+
const keys = Object.keys(value);
|
|
203
|
+
const expectedKeys = value.nodeLibraryPath === undefined
|
|
204
|
+
? ["nodeBin", "runtimeBin", "agencHome"]
|
|
205
|
+
: ["nodeBin", "runtimeBin", "agencHome", "nodeLibraryPath"];
|
|
111
206
|
if (
|
|
112
|
-
|
|
207
|
+
keys.length !== expectedKeys.length ||
|
|
208
|
+
!expectedKeys.every((key, index) => keys[index] === key) ||
|
|
113
209
|
typeof value.nodeBin !== "string" ||
|
|
114
210
|
typeof value.runtimeBin !== "string" ||
|
|
115
|
-
typeof value.agencHome !== "string"
|
|
211
|
+
typeof value.agencHome !== "string" ||
|
|
212
|
+
(value.nodeLibraryPath !== undefined && typeof value.nodeLibraryPath !== "string")
|
|
116
213
|
) return undefined;
|
|
117
214
|
return {
|
|
118
215
|
nodeBin: value.nodeBin,
|
|
119
216
|
runtimeBin: value.runtimeBin,
|
|
120
217
|
agencHome: value.agencHome,
|
|
218
|
+
...(value.nodeLibraryPath === undefined
|
|
219
|
+
? {}
|
|
220
|
+
: { nodeLibraryPath: value.nodeLibraryPath }),
|
|
121
221
|
};
|
|
122
222
|
} catch {
|
|
123
223
|
return undefined;
|
|
@@ -134,7 +234,12 @@ function parseModern(path, content) {
|
|
|
134
234
|
if (values === undefined) return undefined;
|
|
135
235
|
try {
|
|
136
236
|
const wrapper = { kind, path, ...values };
|
|
137
|
-
|
|
237
|
+
if (renderGeneratedWrapperContent(wrapper) === content) return wrapper;
|
|
238
|
+
if (
|
|
239
|
+
values.nodeLibraryPath === undefined &&
|
|
240
|
+
renderPrePrivateNodeWrapperContent(wrapper) === content
|
|
241
|
+
) return wrapper;
|
|
242
|
+
return undefined;
|
|
138
243
|
} catch {
|
|
139
244
|
return undefined;
|
|
140
245
|
}
|