@entrorove/skill 0.1.70 → 0.1.71
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/CHANGELOG.md +5 -0
- package/SKILL.md +2 -2
- package/local-budget-reads.mjs +7 -2
- package/local-budget.mjs +3 -2
- package/local-scope-build-data.mjs +73 -0
- package/local-scope-build-facts.mjs +33 -0
- package/local-scope-build-io.mjs +57 -0
- package/local-scope-build-read.mjs +22 -0
- package/local-scope-build-readset.mjs +49 -0
- package/local-scope-files.mjs +20 -7
- package/local-scope-repository.mjs +47 -37
- package/local-scope-signature.mjs +6 -4
- package/local-scope-state.mjs +7 -5
- package/local-scope-uni-build.mjs +69 -119
- package/local-scope-uni-conditional.mjs +8 -6
- package/local-scope-uni-directives.mjs +5 -5
- package/local-scope-uni-expressions.mjs +10 -5
- package/local-scope-workspaces.mjs +3 -3
- package/manifest.json +1 -1
- package/package.json +8 -2
- package/release-source-groups.mjs +39 -0
- package/release-state.json +23 -17
- package/release.mjs +4 -39
- package/releases.json +6 -0
- package/scope-context-observer.mjs +3 -2
|
@@ -12,14 +12,19 @@ export function uniConditionalError(filename, offset, reason, source = '') {
|
|
|
12
12
|
return Object.assign(new Error(`${filename}:${line}:${column}: ${reason}`), {
|
|
13
13
|
code: 'ENTROROVE_IMPORT_UNSUPPORTED', path: filename, line, column, loc: { start: { offset } } });
|
|
14
14
|
}
|
|
15
|
+
export function uniConditionalLimitError(filename, offset, reason, source = '') {
|
|
16
|
+
return Object.assign(uniConditionalError(filename, offset, reason, source), { code: 'ENTROROVE_SCOPE_LIMIT' });
|
|
17
|
+
}
|
|
18
|
+
const limit = (fail, reason) => Object.assign(fail(reason), { code: 'ENTROROVE_SCOPE_LIMIT' });
|
|
15
19
|
export function uniCondition(expression, fail) {
|
|
16
|
-
if (expression.length > 512) throw fail
|
|
20
|
+
if (expression.length > 512) throw limit(fail, 'Conditional expression exceeds its 512-character bound');
|
|
17
21
|
const tokens = expression.match(/uniVersion|[A-Za-z_][A-Za-z0-9_-]*|\d+(?:\.\d+)?|\|\||&&|>=|<=|===|!==|==|!=|[!()<>]|\S/g) ?? [];
|
|
18
|
-
if (!tokens.length
|
|
22
|
+
if (!tokens.length) throw fail('Conditional expression requires a supported expression');
|
|
23
|
+
if (tokens.length > 128) throw limit(fail, 'Conditional expression exceeds its 128-token bound');
|
|
19
24
|
let cursor = 0, depth = 0;
|
|
20
25
|
const versions = [], macros = new Set();
|
|
21
26
|
const atom = () => {
|
|
22
|
-
if (++depth > 24) throw fail
|
|
27
|
+
if (++depth > 24) throw limit(fail, 'Conditional expression exceeds its nesting bound');
|
|
23
28
|
let result; const token = tokens[cursor++];
|
|
24
29
|
if (token === '!') result = { kind: 'not', value: atom() };
|
|
25
30
|
else if (token === '(') { result = disjunction(); if (tokens[cursor++] !== ')') throw fail('Conditional parentheses are not balanced'); }
|
|
@@ -62,7 +67,7 @@ export function evaluateUniCondition(node, context) {
|
|
|
62
67
|
}
|
|
63
68
|
function versionSamples(conditions, fail) {
|
|
64
69
|
const values = [...new Set(conditions.flatMap(condition => condition.versions))].sort((a, b) => a - b);
|
|
65
|
-
if (values.length > 8) throw fail
|
|
70
|
+
if (values.length > 8) throw limit(fail, 'Conditional versions exceed their eight-boundary inspection limit');
|
|
66
71
|
const samples = new Set([0, ...values]);
|
|
67
72
|
for (let index = 0; index < values.length; index++) {
|
|
68
73
|
const previous = values[index - 1] ?? 0;
|
|
@@ -94,7 +99,7 @@ export function uniConditionContexts(conditions, fail) {
|
|
|
94
99
|
const key = conditions.map(condition => evaluateUniCondition(condition.tree, context) ? '1' : '0').join('');
|
|
95
100
|
if (!seen.has(key)) {
|
|
96
101
|
seen.add(key); output.push({ ...context, key });
|
|
97
|
-
if (output.length > 64) throw fail
|
|
102
|
+
if (output.length > 64) throw limit(fail, 'Conditional compilation exceeds its 64-variant inspection bound');
|
|
98
103
|
}
|
|
99
104
|
}
|
|
100
105
|
return output;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { promises as fs } from 'node:fs';
|
|
3
|
-
import { scopeFail, scopePath,
|
|
3
|
+
import { scopeFail, scopePath, scopeBuildSourceRead, scopeTarget } from './local-scope-files.mjs';
|
|
4
4
|
import { observeScopeDirectory } from './local-scope-read-set.mjs';
|
|
5
5
|
|
|
6
6
|
async function manifest(root, relative, input) {
|
|
7
7
|
try {
|
|
8
|
-
const read = await
|
|
8
|
+
const read = await scopeBuildSourceRead(root, relative, input);
|
|
9
9
|
return { value: JSON.parse(read.content.toString('utf8')), path: relative, sha256: read.sha256 };
|
|
10
10
|
} catch (error) {
|
|
11
11
|
if (error.code === 'ENOENT') return null;
|
|
@@ -20,7 +20,7 @@ async function patterns(root, input) {
|
|
|
20
20
|
if (!Array.isArray(result)) result = result.packages;
|
|
21
21
|
if (!Array.isArray(result) || result.some(pattern => typeof pattern !== 'string')) scopeFail('ENTROROVE_PACKAGE_INVALID', 'workspace patterns must be a literal string array');
|
|
22
22
|
try {
|
|
23
|
-
const read = await
|
|
23
|
+
const read = await scopeBuildSourceRead(root, 'pnpm-workspace.yaml', input); const yaml = read.content.toString('utf8'); let active = false;
|
|
24
24
|
metadata.push({ path: 'pnpm-workspace.yaml', sha256: read.sha256 });
|
|
25
25
|
for (const line of yaml.split('\n')) {
|
|
26
26
|
if (/^packages:\s*$/.test(line)) { active = true; continue; }
|
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entrorove/skill",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.71",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"entrorove": "cli.mjs"
|
|
@@ -319,7 +319,13 @@
|
|
|
319
319
|
"local-scope-uni-directives.mjs",
|
|
320
320
|
"local-scope-uni-conditional.mjs",
|
|
321
321
|
"local-scope-uni-build.mjs",
|
|
322
|
-
"local-scope-read-set.mjs"
|
|
322
|
+
"local-scope-read-set.mjs",
|
|
323
|
+
"release-source-groups.mjs",
|
|
324
|
+
"local-scope-build-read.mjs",
|
|
325
|
+
"local-scope-build-io.mjs",
|
|
326
|
+
"local-scope-build-facts.mjs",
|
|
327
|
+
"local-scope-build-data.mjs",
|
|
328
|
+
"local-scope-build-readset.mjs"
|
|
323
329
|
],
|
|
324
330
|
"scripts": {
|
|
325
331
|
"test": "node test/run.mjs",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const swarmSourceFiles = Object.freeze([
|
|
2
|
+
'local-swarm-authority.mjs',
|
|
3
|
+
'local-swarm-baseline.mjs',
|
|
4
|
+
'local-swarm-completion.mjs',
|
|
5
|
+
'local-swarm-contracts.mjs',
|
|
6
|
+
'local-swarm-mutation.mjs',
|
|
7
|
+
'local-swarm-priority.mjs',
|
|
8
|
+
'local-swarm-state.mjs',
|
|
9
|
+
'local-swarm-storage.mjs',
|
|
10
|
+
'local-swarm.mjs',
|
|
11
|
+
])
|
|
12
|
+
export const coordination17SourceFiles = Object.freeze([
|
|
13
|
+
'local-autocoord17-authority.mjs',
|
|
14
|
+
'local-autocoord17-controller.mjs',
|
|
15
|
+
'local-autocoord17-peers.mjs',
|
|
16
|
+
'local-autocoord17-store.mjs',
|
|
17
|
+
'local-autocoord17-tasks.mjs',
|
|
18
|
+
'local-autocoord17-waits.mjs',
|
|
19
|
+
'local-validator-isolation17.mjs',
|
|
20
|
+
'local-calctool-composition17.mjs',
|
|
21
|
+
])
|
|
22
|
+
export const preservedMutationSourceFiles = Object.freeze([
|
|
23
|
+
'local-preserved-mutation-protection.mjs', 'local-preserved-mutation-signer.mjs',
|
|
24
|
+
'local-preserved-mutation-state.mjs', 'local-preserved-mutation-wire.mjs',
|
|
25
|
+
'local-delegated-modify-analysis.mjs', 'mutation-client.mjs', 'cloud-mutation-authority.mjs',
|
|
26
|
+
])
|
|
27
|
+
export const memberContinuationSourceFiles = Object.freeze([
|
|
28
|
+
'connected-cli.mjs',
|
|
29
|
+
'local-approved-process.mjs',
|
|
30
|
+
'local-approved-supervisor.mjs',
|
|
31
|
+
'local-mutation-consumption.mjs',
|
|
32
|
+
'workflow-local-acceptance.mjs',
|
|
33
|
+
'workflow-observation-client.mjs',
|
|
34
|
+
'workflow-observation-connection.mjs',
|
|
35
|
+
'workflow-observation-remote.mjs',
|
|
36
|
+
'workflow-observation-runner.mjs',
|
|
37
|
+
'workflow-observation-state.mjs',
|
|
38
|
+
'workflow-observation-wire.mjs',
|
|
39
|
+
])
|
package/release-state.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "entrorove.release-state/1.0",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"digest": "
|
|
3
|
+
"version": "0.1.71",
|
|
4
|
+
"digest": "365984167bef91bf1b780eb3c479b0d0fddd6ba79b2df59bc6ae9c8dc4f48e15",
|
|
5
5
|
"files": {
|
|
6
|
+
"release-source-groups.mjs": "6dc0915b79aa495759e7fd1e8dfebde36ab2b6e50f22a2d716eca14b5f9957f9",
|
|
7
|
+
"local-scope-build-read.mjs": "361d4b461cfa2c77b4ec22bc59a0a1c78fed2cfb0ea2e05a8da5c2551ecd88ac",
|
|
8
|
+
"local-scope-build-io.mjs": "8af69722738fa094780f9a2dfcddaf12993fc3b936a75c56c4b0d4f90cb20fd1",
|
|
9
|
+
"local-scope-build-facts.mjs": "8b0bd19347d06d1cb66d8cd2d6784103af9d00ea691d7f4acea523d994b874fb",
|
|
10
|
+
"local-scope-build-data.mjs": "b6e272ca4385629326b4517a53408c561272f5f1a01e5b701f17eaa4c5e64b2e",
|
|
11
|
+
"local-scope-build-readset.mjs": "fd1cb1470c54b3902a4612056281746e947cf96d1f5c03a09ea0becbcd79cc45",
|
|
6
12
|
"scope-context-client.mjs": "dbfec7db0e118f3025a0e45475f3328a171e4cd1dd86e6c8d326d779ce61b459",
|
|
7
|
-
"scope-context-observer.mjs": "
|
|
13
|
+
"scope-context-observer.mjs": "25a84339512c1e80711aca53baed20da556fa2ae5d84e83fa95d58dcdca7cf7d",
|
|
8
14
|
"scope-context-observation.mjs": "d92f2fca3c923caa6f0c5c9cc60b4f12bdae212071da64da6692e3e99b251969",
|
|
9
15
|
"scope-context-remote.mjs": "b52cdee03e845edc15eae6bb3ccfaea9c4482c03f2fae7001439e4abcb2acd33",
|
|
10
16
|
"scope-context-state.mjs": "7bc434620bfc505ee290f1977e64ef22e50f72665d75e7dfd6805deab4e81826",
|
|
@@ -152,13 +158,13 @@
|
|
|
152
158
|
"install-cleanup.mjs": "8a8e1a7dfe37427f86cd4d6e317890d0829894a9949d4216674a716b36edbc54",
|
|
153
159
|
"review-client.mjs": "3491eef68ed533174b31db3c53febb6519b8f088f71a9964644714a9a4c03c77",
|
|
154
160
|
"version.mjs": "85284d4cd5e3314b449e6ae124243f96397bcc274817b5983a79cfdd903d46fd",
|
|
155
|
-
"SKILL.md": "
|
|
161
|
+
"SKILL.md": "910bc4b97159582d6faa6e34785d94b8b7cd484b9a39ef4106edcffc767be9d2",
|
|
156
162
|
"CAPABILITY-MAP.md": "517809bb20750e5de89b2dab5705c902a27fa68cf4f3f392a5d8cf2f19818888",
|
|
157
163
|
"AGREEMENT.md": "f93a68e92c457200dd024610e65f74e478b8f60860f951da818b70561f1b9bf8",
|
|
158
164
|
"DELIVERY-BOUNDARIES.md": "cb23ce71b2197085c8441ba7c5b6c05fb21f2a954bf66b4d60cfef8b15895b8b",
|
|
159
|
-
"package.json": "
|
|
165
|
+
"package.json": "6aeead2f5dd48f4715cf45c0695f8462c362cdc3c2929439565f201b2576bd2f",
|
|
160
166
|
"manifest.json": "ab06e307795bc9da5add926752b6c4dbdaf18625090261a035aa356a679c504f",
|
|
161
|
-
"release.mjs": "
|
|
167
|
+
"release.mjs": "a1c8f8a6945687658e43f75892bfcca58dee6c4947dc9ea002f31bee0ab67538",
|
|
162
168
|
"local-cli.mjs": "058ac9a4653bc12e0d031b72034ebfe6a72b91b9b23353b9fee04881c7d2e098",
|
|
163
169
|
"local-state-lock.mjs": "1dbf64264642a0851faf043e07ee9f66d2ad0508e9f799b0626246e42fae893e",
|
|
164
170
|
"local-execution.mjs": "721ed7d29bbe4ce6d088909cd84ffc440978c3c9eb0946c49a4281ee685fe3aa",
|
|
@@ -187,22 +193,22 @@
|
|
|
187
193
|
"local-budget-handoff-contracts.mjs": "bb53ebf135ec7ecfbecee858cfb354f03fee9cfb3940fa5d967d45008bf9aac5",
|
|
188
194
|
"local-budget-lock.mjs": "ab0722630e1792843a94a6d01e79422cd578fe9e4d423b59d63e636770381236",
|
|
189
195
|
"local-budget-handoff-completion.mjs": "f8bc45df7c18a064d0b5aac7338131deb709da5193bfe9a1d20300585ea9acb6",
|
|
190
|
-
"local-budget-reads.mjs": "
|
|
196
|
+
"local-budget-reads.mjs": "91eab0bf12a057709a6d5685c5602debe5299a58fbd6624f6e0d0f3876dc918b",
|
|
191
197
|
"local-budget-source-bindings.mjs": "cfe97b257fd2da0dd45f95f5e45be20baa6445d11ac6d03538a0105b4985b8ff",
|
|
192
198
|
"local-budget-store.mjs": "2ae36c977ecd32d81f88e2eaa697ce8c228cb4405ecc5c4169cdda104c8ce138",
|
|
193
199
|
"local-budget-transition.mjs": "3894f05d4b5d4d6e16e3f201ff8902e6311cf6434010262934e0d1251aa8b9f0",
|
|
194
|
-
"local-budget.mjs": "
|
|
200
|
+
"local-budget.mjs": "378348e583d6889a731679e1427e645f56f6cb7c547d48d300e00b9e10050516",
|
|
195
201
|
"local-flow-lifecycle.mjs": "47534e16599002e5e7cf7d3e95195f4d7a364d2b651ec339d8c6c017d71c1b05",
|
|
196
202
|
"local-stage-boundary.mjs": "84c3bb5beab29306274c5ca8a78f19a83ed664ae1b93a8372bb493158b304fe3",
|
|
197
203
|
"local-scope-candidate.mjs": "8f0bd9606e70d4a0ebacdd3cd600ec3afed85e2bb3e1760aa1144cf55d4e028a",
|
|
198
204
|
"local-scope-context.mjs": "79753abfc6c76089d17f003a1be537dfaea10d6731c542f7fc53f2a9996ed164",
|
|
199
|
-
"local-scope-files.mjs": "
|
|
200
|
-
"local-scope-repository.mjs": "
|
|
205
|
+
"local-scope-files.mjs": "b8c98b8ca8bb4953f3d2d9ae1fa71b2a54286032c9dd660d3061b584e77778cb",
|
|
206
|
+
"local-scope-repository.mjs": "fe5187824744233b9fce59d7b964a3f24349a3fe31415181654a1b3a70e8de9c",
|
|
201
207
|
"local-scope-read-set.mjs": "a5137d2e7ecffe669143fb51f0f3fba7526a881b512269858ea1e3504d9a50b2",
|
|
202
|
-
"local-scope-uni-expressions.mjs": "
|
|
203
|
-
"local-scope-uni-directives.mjs": "
|
|
204
|
-
"local-scope-uni-conditional.mjs": "
|
|
205
|
-
"local-scope-uni-build.mjs": "
|
|
208
|
+
"local-scope-uni-expressions.mjs": "626247c87a4fd5f6162e548aa907d3f983d5a77d341e640b6f42a539f0c84405",
|
|
209
|
+
"local-scope-uni-directives.mjs": "e546be317962e30a3547aea376db9a7b8d7641055daf9e3dce4a9ef55cd872af",
|
|
210
|
+
"local-scope-uni-conditional.mjs": "f143a142af069279fcac0a01206744ce323c8dfc4496c2f6cc1f0b229c4e5f5e",
|
|
211
|
+
"local-scope-uni-build.mjs": "1dafd4802859b4c53504395f6186b003ee2657fc16f373ca2637e438e4d1b9e5",
|
|
206
212
|
"local-scope-create-require.mjs": "6b6a209bfcad8fe1398e99c5c8cc3af189c120b9c38e244a73dd1a99c3d91295",
|
|
207
213
|
"local-scope-require-resolution.mjs": "b24596462c8776cbefa6f0a74749d665aa928d1643c68d44798eb93e2dd5ad42",
|
|
208
214
|
"local-scope-git.mjs": "53bbbb6c4795db711b5bc164591a6ad79a561427da046d6bbe997dae6eb82829",
|
|
@@ -228,12 +234,12 @@
|
|
|
228
234
|
"local-budget-git-system-attributes.mjs": "367a4e5a88490c4d4c3717bc893a271970fe70d7705f0c1c72d6f76a442d5d21",
|
|
229
235
|
"runtime/git-native-linux-v1.mjs": "cf5cb91426a105e62c0f07a8a230dec592dba46f85a3f708b4c4e8cfcd1126c6",
|
|
230
236
|
"runtime/git-native-darwin-v1.mjs": "f88aab72dc86f94eb1115784872957cb8ed0f74205ae70e1ecd1939e7790e310",
|
|
231
|
-
"local-scope-signature.mjs": "
|
|
237
|
+
"local-scope-signature.mjs": "3804b84d5ddca5c1ac991b31151d84cddc508517eff7500351ba1bcffdf3c672",
|
|
232
238
|
"local-scope-config-imports.mjs": "a399407227bbdd14468633bb6d25586df7c6a30a1ef0d1a80ab7c7b499d3fadf",
|
|
233
239
|
"local-scope-config-extends.mjs": "3ab4150b846b247e9e0851221123f220c5574699af651830e751f026ab33659e",
|
|
234
240
|
"local-scope-snapshot.mjs": "c0f851470b98863a1d187825ed61ee6072d1c057b178fdc85ae29af02a3b250f",
|
|
235
|
-
"local-scope-state.mjs": "
|
|
236
|
-
"local-scope-workspaces.mjs": "
|
|
241
|
+
"local-scope-state.mjs": "7a6d275d6267a4d0bb55582e1bcc7654c502ecba9221b84b2149a98f0ee7518f",
|
|
242
|
+
"local-scope-workspaces.mjs": "8a75ce7b6639b5682370b5738c5c2a90408e3130729608e008f03053cd50351f",
|
|
237
243
|
"local-task-routing.mjs": "6e2e506b2fb0e2e8d8c5147d7df32849b57a4e94a23634f01a355d45735858e4",
|
|
238
244
|
"remote-client.mjs": "d30fd61fab3171a9e41546706a57ae372786d20ea9e9c01cad39d9863c156b40",
|
|
239
245
|
"cloud-task-client.mjs": "f9085c5e6af6f179282670d2e872b85bfabac2657d3d232b1246dc23f5a6ccdd",
|
package/release.mjs
CHANGED
|
@@ -9,46 +9,9 @@ import { fileURLToPath } from 'node:url'
|
|
|
9
9
|
import { chainReleaseLabels } from './local-chain-release-labels.mjs'
|
|
10
10
|
|
|
11
11
|
const directory = path.dirname(fileURLToPath(import.meta.url))
|
|
12
|
-
|
|
13
|
-
'local-swarm-authority.mjs',
|
|
14
|
-
'local-swarm-baseline.mjs',
|
|
15
|
-
'local-swarm-completion.mjs',
|
|
16
|
-
'local-swarm-contracts.mjs',
|
|
17
|
-
'local-swarm-mutation.mjs',
|
|
18
|
-
'local-swarm-priority.mjs',
|
|
19
|
-
'local-swarm-state.mjs',
|
|
20
|
-
'local-swarm-storage.mjs',
|
|
21
|
-
'local-swarm.mjs',
|
|
22
|
-
])
|
|
23
|
-
const coordination17SourceFiles = Object.freeze([
|
|
24
|
-
'local-autocoord17-authority.mjs',
|
|
25
|
-
'local-autocoord17-controller.mjs',
|
|
26
|
-
'local-autocoord17-peers.mjs',
|
|
27
|
-
'local-autocoord17-store.mjs',
|
|
28
|
-
'local-autocoord17-tasks.mjs',
|
|
29
|
-
'local-autocoord17-waits.mjs',
|
|
30
|
-
'local-validator-isolation17.mjs',
|
|
31
|
-
'local-calctool-composition17.mjs',
|
|
32
|
-
])
|
|
33
|
-
const preservedMutationSourceFiles = Object.freeze([
|
|
34
|
-
'local-preserved-mutation-protection.mjs', 'local-preserved-mutation-signer.mjs',
|
|
35
|
-
'local-preserved-mutation-state.mjs', 'local-preserved-mutation-wire.mjs',
|
|
36
|
-
'local-delegated-modify-analysis.mjs', 'mutation-client.mjs', 'cloud-mutation-authority.mjs',
|
|
37
|
-
])
|
|
38
|
-
const memberContinuationSourceFiles = Object.freeze([
|
|
39
|
-
'connected-cli.mjs',
|
|
40
|
-
'local-approved-process.mjs',
|
|
41
|
-
'local-approved-supervisor.mjs',
|
|
42
|
-
'local-mutation-consumption.mjs',
|
|
43
|
-
'workflow-local-acceptance.mjs',
|
|
44
|
-
'workflow-observation-client.mjs',
|
|
45
|
-
'workflow-observation-connection.mjs',
|
|
46
|
-
'workflow-observation-remote.mjs',
|
|
47
|
-
'workflow-observation-runner.mjs',
|
|
48
|
-
'workflow-observation-state.mjs',
|
|
49
|
-
'workflow-observation-wire.mjs',
|
|
50
|
-
])
|
|
12
|
+
import { swarmSourceFiles, coordination17SourceFiles, preservedMutationSourceFiles, memberContinuationSourceFiles } from './release-source-groups.mjs'
|
|
51
13
|
const sourceFiles = [
|
|
14
|
+
'release-source-groups.mjs', 'local-scope-build-read.mjs', 'local-scope-build-io.mjs', 'local-scope-build-facts.mjs', 'local-scope-build-data.mjs', 'local-scope-build-readset.mjs',
|
|
52
15
|
...SCOPE_CONTEXT_SOURCE_FILES, 'cloud-locale.mjs', 'cloud-locale.d.mts', 'cloud-task-images.mjs', 'model-images.mjs', 'model-images.d.mts', 'cli-input.mjs',
|
|
53
16
|
'scope-amendment-retirement.mjs', 'scope-amendment-consumption.mjs', 'mutation-connection-state.mjs', 'mutation-challenge-refresh.mjs',
|
|
54
17
|
'local-scope-font.mjs', 'local-scope-zip.mjs', 'member-producer-repair-authority.mjs',
|
|
@@ -342,6 +305,8 @@ const archguardReleaseLabels = {
|
|
|
342
305
|
}
|
|
343
306
|
function releaseLabels() {
|
|
344
307
|
return withFinalGate16ReleaseLabels({ ...designGateReleaseLabels, ...reuseDisciplineReleaseLabels, ...calctoolReleaseLabels, ...mutationReleaseLabels, ...swarmReleaseLabels, ...coordination17ReleaseLabels, ...nativeReadReleaseLabels, ...feedbackReleaseLabels, ...invocationReleaseLabels, ...chainReleaseLabels, ...taskEntryReleaseLabels, ...archguardReleaseLabels,
|
|
308
|
+
...Object.fromEntries(['local-scope-build-read.mjs', 'local-scope-build-io.mjs', 'local-scope-build-facts.mjs', 'local-scope-build-data.mjs', 'local-scope-build-readset.mjs', 'local-scope-uni-build.mjs', 'local-scope-uni-expressions.mjs', 'local-scope-uni-directives.mjs', 'local-scope-uni-conditional.mjs'].map(name => [name, { zh: '源码事实与未知构建行为分离', en: 'raw source facts and opaque build observation' }])),
|
|
309
|
+
'release-source-groups.mjs': { zh: '自动版本源文件清单', en: 'automatic version source inventory' },
|
|
345
310
|
...Object.fromEntries(['cloud-task-images.mjs', 'model-images.mjs', 'model-images.d.mts', 'cli-input.mjs'].map(name => [name, { zh: '受限图片输入通道', en: 'bounded image input channel' }])),
|
|
346
311
|
...Object.fromEntries(['scope-amendment-retirement.mjs', 'scope-amendment-consumption.mjs', 'mutation-connection-state.mjs', 'mutation-challenge-refresh.mjs', 'member-producer-repair-authority.mjs'].map(name => [name, { zh: '原授权恢复与请求生命周期', en: 'original-authority recovery and request lifecycle' }])),
|
|
347
312
|
...Object.fromEntries(['local-scope-font.mjs', 'local-scope-zip.mjs'].map(name => [name, { zh: '字体与 ZIP 完整结构核验', en: 'font and ZIP structural verification' }])),
|
package/releases.json
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.1.71",
|
|
4
|
+
"date": "2026-10-20",
|
|
5
|
+
"zh": "通用分离源码依赖事实与未知构建行为:动态配置、宏及加载器保留真实哈希与只读来源,不执行项目代码,不把构建未知标为完整。原审批与独立 S/M 签名仅允许已知源码的非结构修改;隐私文件、路径、资源预算、未知目标及配置漂移继续明确拒绝,实际构建与测试仍需原流程验收。",
|
|
6
|
+
"en": "Separate raw source dependency facts from opaque build behavior across projects. Preserve actual hashes and read-only origins for dynamic configuration, macros and loaders without executing project code or claiming compiled completeness. Original approvals and separate S/M signatures permit only known-source nonstructural modifications; private files, unsafe paths, resource budgets, unknown targets and configuration drift remain explicit refusals. Actual builds and tests still require original-flow acceptance."
|
|
7
|
+
},
|
|
2
8
|
{
|
|
3
9
|
"version": "0.1.70",
|
|
4
10
|
"date": "2026-10-20",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID, sign } from 'node:crypto';
|
|
2
2
|
import { canonical } from './local-integrity.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import { scopeBuildSourceRead, scopeTarget } from './local-scope-files.mjs';
|
|
4
4
|
import { snapshotPlan, snapshotVerify } from './local-execution.mjs';
|
|
5
5
|
import { collectScopeFacts } from './local-scope-repository.mjs';
|
|
6
6
|
import { readScopeSnapshot, verifyFreshScopeSnapshot } from './local-scope-snapshot.mjs';
|
|
@@ -20,7 +20,8 @@ export async function inspectContextEvidence(location, contexts, evidencePaths)
|
|
|
20
20
|
for (const relative of [...paths].sort()) {
|
|
21
21
|
const target = await scopeTarget(location.root, relative);
|
|
22
22
|
if (!target.stat.isFile() || target.stat.size > 1_048_576) contextFail('Build evidence must be an actual ordinary bounded repository file');
|
|
23
|
-
const read = await
|
|
23
|
+
const read = await scopeBuildSourceRead(location.root, relative, { repositoryRoot: location.root });
|
|
24
|
+
if (read.bytes > 1_048_576) contextFail('Build evidence exceeds its actual 1 MiB inspection bound');
|
|
24
25
|
evidence.push({ path: relative, sha256: read.sha256 });
|
|
25
26
|
}
|
|
26
27
|
return evidence;
|