@asc-agent/runtime 0.6.0 → 0.6.1
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/README.md
CHANGED
|
@@ -7,7 +7,7 @@ proceed-by-default, escalation, audit, the external-write guard, host integratio
|
|
|
7
7
|
here.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install -g @asc-agent/runtime@0.6.
|
|
10
|
+
npm install -g @asc-agent/runtime@0.6.1
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
npm owns the executable link (on Windows, npm's own `asc.cmd`). This package never edits
|
package/dist/cli/asc.js
CHANGED
|
@@ -2056,8 +2056,16 @@ async function checkBootstrap(root) {
|
|
|
2056
2056
|
adapters: ADAPTER_VERSIONS,
|
|
2057
2057
|
ascVersion: ASC_VERSION,
|
|
2058
2058
|
});
|
|
2059
|
-
if (outcome.ok)
|
|
2059
|
+
if (outcome.ok) {
|
|
2060
|
+
// 판번호만 낡은 lock 은 멈출 이유가 아니다. 다만 조용히 지나가지도 않는다 —
|
|
2061
|
+
// 다음 재고정 때 따라온다는 것을 여기서 한 번 말한다.
|
|
2062
|
+
if (outcome.staleLock) {
|
|
2063
|
+
const moved = outcome.staleLock.find((drift) => drift.field === 'ascCore.version');
|
|
2064
|
+
if (moved)
|
|
2065
|
+
console.error(`(profile.lock was written by ASC ${moved.locked}; this is ${moved.current}. \`asc profile resolve --write\` records it.)`);
|
|
2066
|
+
}
|
|
2060
2067
|
return { code: 0, runtime: outcome.runtime };
|
|
2068
|
+
}
|
|
2061
2069
|
// 아직 붙이지 않았으면 설정 없이 도는 경로만 쓰는 것이므로 막지 않는다
|
|
2062
2070
|
if (outcome.reason === 'NOT_ATTACHED')
|
|
2063
2071
|
return { code: 0 };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const RUNTIME_PACKAGE = "@asc-agent/runtime";
|
|
2
2
|
export declare const BOOTSTRAP_PACKAGE = "@asc-agent/bootstrap";
|
|
3
3
|
/** runtime과 bootstrap은 초기 release에서 lockstep이다. */
|
|
4
|
-
export declare const RELEASE_VERSION = "0.6.
|
|
5
|
-
export declare const RUNTIME_SPEC = "@asc-agent/runtime@0.6.
|
|
6
|
-
export declare const BOOTSTRAP_SPEC = "@asc-agent/bootstrap@0.6.
|
|
4
|
+
export declare const RELEASE_VERSION = "0.6.1";
|
|
5
|
+
export declare const RUNTIME_SPEC = "@asc-agent/runtime@0.6.1";
|
|
6
|
+
export declare const BOOTSTRAP_SPEC = "@asc-agent/bootstrap@0.6.1";
|
|
7
7
|
/**
|
|
8
8
|
* 아직 설치되지 않은 machine에서 그대로 실행되는 형태 (C-14 §3.4).
|
|
9
9
|
*
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
export const RUNTIME_PACKAGE = '@asc-agent/runtime';
|
|
10
10
|
export const BOOTSTRAP_PACKAGE = '@asc-agent/bootstrap';
|
|
11
11
|
/** runtime과 bootstrap은 초기 release에서 lockstep이다. */
|
|
12
|
-
export const RELEASE_VERSION = '0.6.
|
|
12
|
+
export const RELEASE_VERSION = '0.6.1';
|
|
13
13
|
export const RUNTIME_SPEC = `${RUNTIME_PACKAGE}@${RELEASE_VERSION}`;
|
|
14
14
|
export const BOOTSTRAP_SPEC = `${BOOTSTRAP_PACKAGE}@${RELEASE_VERSION}`;
|
|
15
15
|
/**
|
|
@@ -85,6 +85,11 @@ export type BootstrapOutcome = {
|
|
|
85
85
|
ok: true;
|
|
86
86
|
runtime: ResolvedRuntime;
|
|
87
87
|
lock: ProfileLock;
|
|
88
|
+
/**
|
|
89
|
+
* lock 이 이 build 가 아닌 판번호로 적혀 있다. 멈출 일은 아니고 (사람이 고친 설정이
|
|
90
|
+
* 아니다), 기록이 낡았다는 사실은 말한다.
|
|
91
|
+
*/
|
|
92
|
+
staleLock?: LockDrift[];
|
|
88
93
|
}
|
|
89
94
|
/** attach 전이다. `.asc/` 자체가 없다 — 설정 없이 도는 경로만 허용된다. */
|
|
90
95
|
| {
|
|
@@ -130,3 +135,16 @@ export declare function bootstrapGuard(input: {
|
|
|
130
135
|
adapters: Record<string, string>;
|
|
131
136
|
ascVersion: string;
|
|
132
137
|
}): Promise<BootstrapOutcome>;
|
|
138
|
+
/**
|
|
139
|
+
* 사람이 정해야 하는 어긋남만 남긴다 (C-14 실측).
|
|
140
|
+
*
|
|
141
|
+
* lock 은 **사람이 바꾼 설정**을 잡으라고 있는 파일이다. runtime 을 갈아 끼우면
|
|
142
|
+
* `ascCore.version` 과 함께 딸려 오는 adapter 판번호가 바뀌고, 그 둘이 재료인
|
|
143
|
+
* `configurationDigest` 도 따라 바뀐다 — 사람이 아무것도 고치지 않았는데 셋이 어긋난다.
|
|
144
|
+
* 그 상태로 멈추면 업데이트가 그 machine 의 모든 프로젝트를 세운다.
|
|
145
|
+
*
|
|
146
|
+
* 실측이 그것이었다: 이 machine 의 workspace 세 개가 전부 `0.3.1 → 0.6.0` 한 가지 이유로
|
|
147
|
+
* 서 있었고, 그 중 둘은 그렇게 여러 릴리스 동안 회차를 돌지 못했다. Profile·Preset·
|
|
148
|
+
* Override·capability 가 어긋나면 지금처럼 멈춘다 — 그것이 사람의 결정이다.
|
|
149
|
+
*/
|
|
150
|
+
export declare function configurationDrifts(drifts: readonly LockDrift[]): LockDrift[];
|
|
@@ -261,7 +261,28 @@ export async function bootstrapGuard(input) {
|
|
|
261
261
|
generatedAt: locked.generatedAt,
|
|
262
262
|
});
|
|
263
263
|
const drifts = compareLock(locked, current);
|
|
264
|
-
|
|
264
|
+
const configuration = configurationDrifts(drifts);
|
|
265
|
+
if (configuration.length > 0) {
|
|
265
266
|
return { ok: false, reason: 'LOCK_DRIFT', drifts, runtime: resolved.runtime };
|
|
266
|
-
|
|
267
|
+
}
|
|
268
|
+
// 남은 것이 있다면 그것은 **이 build 가 옮겨 온 것**이다. 멈출 일이 아니지만 없던 일도
|
|
269
|
+
// 아니므로 그대로 실어 보낸다 — 호출자가 한 줄 말하고, lock 은 다음 재고정 때 따라온다.
|
|
270
|
+
return { ok: true, runtime: resolved.runtime, lock: locked, ...(drifts.length > 0 ? { staleLock: drifts } : {}) };
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* 사람이 정해야 하는 어긋남만 남긴다 (C-14 실측).
|
|
274
|
+
*
|
|
275
|
+
* lock 은 **사람이 바꾼 설정**을 잡으라고 있는 파일이다. runtime 을 갈아 끼우면
|
|
276
|
+
* `ascCore.version` 과 함께 딸려 오는 adapter 판번호가 바뀌고, 그 둘이 재료인
|
|
277
|
+
* `configurationDigest` 도 따라 바뀐다 — 사람이 아무것도 고치지 않았는데 셋이 어긋난다.
|
|
278
|
+
* 그 상태로 멈추면 업데이트가 그 machine 의 모든 프로젝트를 세운다.
|
|
279
|
+
*
|
|
280
|
+
* 실측이 그것이었다: 이 machine 의 workspace 세 개가 전부 `0.3.1 → 0.6.0` 한 가지 이유로
|
|
281
|
+
* 서 있었고, 그 중 둘은 그렇게 여러 릴리스 동안 회차를 돌지 못했다. Profile·Preset·
|
|
282
|
+
* Override·capability 가 어긋나면 지금처럼 멈춘다 — 그것이 사람의 결정이다.
|
|
283
|
+
*/
|
|
284
|
+
export function configurationDrifts(drifts) {
|
|
285
|
+
return drifts.filter((drift) => !VERSION_SHAPED.has(drift.field) && !drift.field.startsWith('adapters.'));
|
|
267
286
|
}
|
|
287
|
+
/** runtime 을 갈아 끼우는 것만으로 바뀌는 자리들. */
|
|
288
|
+
const VERSION_SHAPED = new Set(['ascCore.version', 'configurationDigest']);
|