@plurnk/plurnk-service 1.11.0 → 1.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/.env.defaults +4 -0
- package/INSTALL.md +3 -3
- package/README.md +1 -1
- package/SPEC.md +110 -47
- package/dist/build-info.json +1 -1
- package/dist/content/edit-collision.d.ts +1 -1
- package/dist/content/edit-collision.d.ts.map +1 -1
- package/dist/content/edit-collision.js +2 -1
- package/dist/content/edit-collision.js.map +1 -1
- package/dist/content/edit-receipt.d.ts +2 -2
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +15 -6
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/line-anchors.d.ts.map +1 -1
- package/dist/content/line-anchors.js +13 -6
- package/dist/content/line-anchors.js.map +1 -1
- package/dist/content/line-marker.d.ts +0 -1
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts +2 -1
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +2 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +4 -2
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +13 -6
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/EmbeddingCall.d.ts +23 -0
- package/dist/core/EmbeddingCall.d.ts.map +1 -0
- package/dist/core/EmbeddingCall.js +149 -0
- package/dist/core/EmbeddingCall.js.map +1 -0
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +72 -4
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +91 -31
- package/dist/core/InferenceCall.d.ts +18 -0
- package/dist/core/InferenceCall.d.ts.map +1 -0
- package/dist/core/InferenceCall.js +86 -0
- package/dist/core/InferenceCall.js.map +1 -0
- package/dist/core/ModelCall.d.ts +4 -13
- package/dist/core/ModelCall.d.ts.map +1 -1
- package/dist/core/ModelCall.js +10 -77
- package/dist/core/ModelCall.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +3 -1
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ResourceMutations.d.ts +1 -0
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +140 -17
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +1 -0
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +11 -2
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/Turn.sql +6 -3
- package/dist/core/TurnRunner.d.ts +0 -1
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +30 -12
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/VectorPump.d.ts +28 -0
- package/dist/core/VectorPump.d.ts.map +1 -0
- package/dist/core/VectorPump.js +130 -0
- package/dist/core/VectorPump.js.map +1 -0
- package/dist/core/packet-wire.d.ts +1 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +27 -12
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +58 -16
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +35 -17
- package/dist/schemes/Exec.d.ts +1 -0
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +15 -2
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +10 -4
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +15 -1
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +3 -0
- package/dist/schemes/_entry-chunk.d.ts.map +1 -1
- package/dist/schemes/_entry-chunk.js +5 -1
- package/dist/schemes/_entry-chunk.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +2 -5
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +21 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +12 -2
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +5 -3
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +25 -8
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_path-scope.d.ts.map +1 -1
- package/dist/schemes/_path-scope.js +6 -1
- package/dist/schemes/_path-scope.js.map +1 -1
- package/dist/schemes/_search-index.d.ts +5 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +80 -26
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +1 -0
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/lifecycle-recovery.sql +14 -20
- package/dist/service.js +2 -2
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +260 -67
- package/package.json +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelCall.d.ts","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModelCall.d.ts","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,uBAAuB,EAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,aAAa,EAAE,EAClB,6BAA6B,EAC7B,gCAAgC,EACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,OAAO,EAAE,6BAA6B,IAAI,yBAAyB,EAAE,gCAAgC,EAAE,CAAC;AAKxG,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;;IAGhD,OAAO,eAGN;IAED,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,aAAa,CAAC;QACpB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC;KACjB,GACF,OAAO,CAAC,SAAS,CAAC,CAsBpB;IAEK,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,YAAY,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBnG;IAEK,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,GAAE,uBAAuB,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAchG;CACJ"}
|
package/dist/core/ModelCall.js
CHANGED
|
@@ -1,98 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { providerRequestSettlementParams, } from "./provider-accounting.js";
|
|
4
|
-
export class ModelCallPersistenceError extends Error {
|
|
5
|
-
constructor(message, cause) {
|
|
6
|
-
super(message, { cause });
|
|
7
|
-
this.name = "ModelCallPersistenceError";
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
export class ProviderAccountingIntegrityError extends Error {
|
|
11
|
-
constructor(message) {
|
|
12
|
-
super(message);
|
|
13
|
-
this.name = "ProviderAccountingIntegrityError";
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
import InferenceCall, { InferenceCallPersistenceError, ProviderAccountingIntegrityError, } from "./InferenceCall.js";
|
|
2
|
+
export { InferenceCallPersistenceError as ModelCallPersistenceError, ProviderAccountingIntegrityError };
|
|
16
3
|
// One concurrency-safe logical model-call ledger. A provider may open several
|
|
17
4
|
// ordered physical requests beneath it; no mutable observer state is shared
|
|
18
5
|
// across sibling BARE calls. {§provider-request-accounting} {§bare-inference}
|
|
19
|
-
export default class ModelCall {
|
|
20
|
-
id;
|
|
6
|
+
export default class ModelCall extends InferenceCall {
|
|
21
7
|
#db;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
constructor(db, id) {
|
|
8
|
+
constructor(db, id, sequence) {
|
|
9
|
+
super(db, id, sequence);
|
|
25
10
|
this.#db = db;
|
|
26
|
-
this.id = id;
|
|
27
|
-
}
|
|
28
|
-
get requestSequence() {
|
|
29
|
-
return this.#requestSequence;
|
|
30
11
|
}
|
|
31
12
|
static async open(db, input) {
|
|
32
13
|
let row;
|
|
33
14
|
try {
|
|
34
15
|
row = await db.engine_open_model_call.get({
|
|
35
16
|
turn_id: input.turnId,
|
|
36
|
-
sequence: input.sequence,
|
|
37
17
|
kind: input.kind,
|
|
38
18
|
attributions: JSON.stringify(input.attributions),
|
|
39
19
|
model: input.model,
|
|
40
20
|
});
|
|
41
21
|
}
|
|
42
22
|
catch (cause) {
|
|
43
|
-
throw new
|
|
44
|
-
}
|
|
45
|
-
if (row === undefined) {
|
|
46
|
-
throw new ModelCallPersistenceError(`could not open ${input.kind} model call ${input.sequence} for turn ${input.turnId}`, new Error("INSERT RETURNING produced no row"));
|
|
47
|
-
}
|
|
48
|
-
return new ModelCall(db, row.id);
|
|
49
|
-
}
|
|
50
|
-
observeRequest = async (identity) => {
|
|
51
|
-
if (identity.provider.length === 0 || identity.model.length === 0) {
|
|
52
|
-
throw new TypeError("provider request identity requires non-empty provider and model names");
|
|
53
|
-
}
|
|
54
|
-
const sequence = ++this.#requestSequence;
|
|
55
|
-
let row;
|
|
56
|
-
try {
|
|
57
|
-
row = await this.#db.engine_open_provider_request.get({
|
|
58
|
-
model_call_id: this.id,
|
|
59
|
-
sequence,
|
|
60
|
-
provider: identity.provider,
|
|
61
|
-
model: identity.model,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch (cause) {
|
|
65
|
-
throw new ModelCallPersistenceError(`could not open provider request ${sequence} for model call ${this.id}`, cause);
|
|
23
|
+
throw new InferenceCallPersistenceError(`could not open ${input.kind} model call for turn ${input.turnId}`, cause);
|
|
66
24
|
}
|
|
67
25
|
if (row === undefined) {
|
|
68
|
-
throw new
|
|
69
|
-
}
|
|
70
|
-
let settled = false;
|
|
71
|
-
return async (value) => {
|
|
72
|
-
if (settled)
|
|
73
|
-
throw new ProviderAccountingIntegrityError(`provider request ${row.id} was settled more than once`);
|
|
74
|
-
const accounting = validateProviderRequestAccounting(value);
|
|
75
|
-
if (accounting.provider !== identity.provider || accounting.model !== identity.model) {
|
|
76
|
-
throw new ProviderAccountingIntegrityError(`provider request ${row.id} settlement changed its durable identity`);
|
|
77
|
-
}
|
|
78
|
-
try {
|
|
79
|
-
const result = await this.#db.engine_settle_provider_request.run(providerRequestSettlementParams(row.id, accounting));
|
|
80
|
-
if (result.changes !== 1) {
|
|
81
|
-
throw new Error(`provider request ${row.id} was not pending at settlement`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (cause) {
|
|
85
|
-
throw new ModelCallPersistenceError(`could not settle provider request ${row.id}`, cause);
|
|
86
|
-
}
|
|
87
|
-
settled = true;
|
|
88
|
-
this.#observedRequests.push(accounting);
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
assertAccounting(accounting) {
|
|
92
|
-
const returned = accounting.map(validateProviderRequestAccounting);
|
|
93
|
-
if (!isDeepStrictEqual(returned, this.#observedRequests)) {
|
|
94
|
-
throw new ProviderAccountingIntegrityError(`provider accounting for model call ${this.id} does not match the cardinal requests observed by Core`);
|
|
26
|
+
throw new InferenceCallPersistenceError(`could not open ${input.kind} model call for turn ${input.turnId}`, new Error("INSERT RETURNING produced no row"));
|
|
95
27
|
}
|
|
28
|
+
return new ModelCall(db, row.id, row.sequence);
|
|
96
29
|
}
|
|
97
30
|
async observeResponse(response, failure = null) {
|
|
98
31
|
const { accounting: _accounting, capacity, ...evidence } = response;
|
|
@@ -109,7 +42,7 @@ export default class ModelCall {
|
|
|
109
42
|
throw new Error(`model call ${this.id} was not pending`);
|
|
110
43
|
}
|
|
111
44
|
catch (cause) {
|
|
112
|
-
throw new
|
|
45
|
+
throw new InferenceCallPersistenceError(`could not preserve response for model call ${this.id}`, cause);
|
|
113
46
|
}
|
|
114
47
|
}
|
|
115
48
|
async fail(failure, capacity = null) {
|
|
@@ -123,7 +56,7 @@ export default class ModelCall {
|
|
|
123
56
|
throw new Error(`model call ${this.id} was not pending`);
|
|
124
57
|
}
|
|
125
58
|
catch (cause) {
|
|
126
|
-
throw new
|
|
59
|
+
throw new InferenceCallPersistenceError(`could not preserve failure for model call ${this.id}`, cause);
|
|
127
60
|
}
|
|
128
61
|
}
|
|
129
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelCall.js","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModelCall.js","sourceRoot":"","sources":["../../src/core/ModelCall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgBhD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA0FtE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAc9B,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QACpC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;KACjD,EASA;IAED,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAE7G;IAiCD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEnD;IAIK,kBAAkB,CAAC,EACrB,eAAe,EAAE,KAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAY,EAC7G,uBAA8B,EAC9B,gBAA8B,GACjC,EAAE;QACC,eAAe,EAAE,WAAW,EAAE,CAAC;QAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QAInB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAG5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAGxC,gBAAgB,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;KAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"PacketBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgBhD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA0FtE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAID,MAAM,CAAC,OAAO,OAAO,aAAa;;IAc9B,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QACpC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;KACjD,EASA;IAED,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAE7G;IAiCD,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAEnD;IAIK,kBAAkB,CAAC,EACrB,eAAe,EAAE,KAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAY,EAC7G,uBAA8B,EAC9B,gBAA8B,GACjC,EAAE;QACC,eAAe,EAAE,WAAW,EAAE,CAAC;QAE/B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QAInB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAG5B,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAGxC,gBAAgB,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;KAC/C,GAAG,OAAO,CAAC,aAAa,CAAC,CAuJzB;IAIK,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAuCnH;IAKD,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAInF;IAKK,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9E,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC,CASF;CAqFJ"}
|
|
@@ -244,7 +244,9 @@ class PacketBuilder {
|
|
|
244
244
|
// streams and space ({§worker-read-scope}, #394). Root workers have none → omitted.
|
|
245
245
|
const parentRow = await this.#db.engine_parent_worker.get({ worker_id: workerId });
|
|
246
246
|
const parentWorker = parentRow === undefined ? [] : [{ status: parentRow.status, path: `worker://${parentRow.name}` }];
|
|
247
|
-
|
|
247
|
+
// {§fs-namespace} — the log renders working directories relative to the model's `/`.
|
|
248
|
+
const workspaceRow = await this.#db.envelope_get_workspace.get({ id: workspaceId });
|
|
249
|
+
const renderedLog = PacketWire.renderLogWithAccounting(log, weighContent, { projectRoot: workspaceRow?.project_root ?? null, ...(promptProjectionWeight === null ? {} : { promptProjectionWeight }) });
|
|
248
250
|
const defaults = [
|
|
249
251
|
{ name: "definition", slot: "system", header: null, content: system_definition },
|
|
250
252
|
// Stable privileged policy leads capability teaching for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PacketBuilder.js","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PacketBuilder.js","sourceRoot":"","sources":["../../src/core/PacketBuilder.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,mEAAmE;AACnE,sEAAsE;AACtE,0CAA0C;AAC1C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAKzD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAEzF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAmB,EAAE;IACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,SAAS;QAClC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,QAAQ,GAAG,KAAK,GAAG,CAAC,EAAE,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,QAAQ,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;QACzG,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAW,EAAE,CACzD,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEzF,iFAAiF;AACjF,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACzD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,GAAiD,IAAI,CAAC;IAC/D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;gBAAE,KAAK,GAAG,IAAI,CAAC;YACxF,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtE,OAAO,GAAG,KAAK,CAAC;YAChB,YAAY,GAAG,CAAC,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACrF,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;gBAAE,OAAO,OAAO,CAAC;YACrI,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,GAAG,KAAK,CAAC;YAChB,YAAY,GAAG,CAAC,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACrF,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,cAAc,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,uBAAuB,GAAG,CAAC,GAAsB,EAAE,IAAY,EAAU,EAAE;IAC7E,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0CAA0C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,OAAO,GAAG,GAAG,CAAC;AACzB,CAAC,CAAC;AAUF,yEAAyE;AACzE,0EAA0E;AAC1E,MAAqB,aAAa;IAE9B,GAAG,CAAK;IACR,QAAQ,CAAiB;IACzB,0EAA0E;IAC1E,0EAA0E;IAC1E,UAAU,CAAqC;IAC/C,aAAa,CAAqB;IAClC,wEAAwE;IACxE,wEAAwE;IACxE,uBAAuB,GAAuE,GAAG,EAAE,CAAC,EAAE,CAAC;IACvG,4EAA4E;IAC5E,mEAAmE;IAEnE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAInC;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACpE,2EAA2E;QAC3E,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,yBAAyB,CAAC,SAA6E;QACnG,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,yFAAyF;IACzF,MAAM,CAAC,MAAM,GAAG,CAAC,kCAAkC,CAAU,CAAC;IAE9D,yBAAyB;QACrB,MAAM,OAAO,GAA2B;YACpC,4BAA4B,EAAE,oEAAoE;YAClG,qBAAqB,EAAE,mEAAmE;SAC7F,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,iEAAiE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1F,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,gBAAgB,MAAM,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,KAAK,GAA2B;YAClC,GAAG,EAAE,iCAAiC;YACtC,cAAc,EAAE,iCAAiC;YACjD,SAAS,EAAE,mCAAmC;YAC9C,SAAS,EAAE,gCAAgC;YAC3C,UAAU,EAAE,gCAAgC;SAC/C,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,6EAA6E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtG,IAAI,KAAK,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,2CAA2C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/H,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,KAAa;QAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAa,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,uBAAuB,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAC7E,CAAC;IAED,iBAAiB,CAAC,QAAkB;QAChC,OAAO,QAAQ,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,KAAK,CAAC,kBAAkB,CAAC,EACrB,eAAe,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,EAC7G,uBAAuB,GAAG,IAAI,EAC9B,gBAAgB,GAAG,WAAW,GAoBjC;QACG,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClG,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC3B,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;aACpG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,IAAyB,EAAU,EAAE,CACjD,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtF,8EAA8E;QAC9E,8EAA8E;QAC9E,yFAAyF;QACzF,sEAAsE;QACtE,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,sEAAsE;QACtE,iEAAiE;QACjE,wDAAwD;QACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,GAAG,CAAwC;YAC/G,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,GAAG,YAAY,GAAG;YAC3B,UAAU,EAAE,YAAY,CAAC,MAAM;SAClC,CAAC,CAAC;aACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1E,8DAA8D;QAC9D,iFAAiF;QACjF,oFAAoF;QACpF,wFAAwF;QACxF,+CAA+C;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,wFAAwF;QACxF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,CAAC,0BAA0B,KAAK,IAAI;gBACvC,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC;gBAC5C,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrE,iFAAiF;QACjF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,aAAa,CAAC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,sBAAsB,GAAG,gBAAgB,KAAK,UAAU;YAC1D,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,cAAc,KAAK,IAAI;gBACrB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC1D,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC,CAAC,mEAAmE;QAC5G,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC,CAAC,kDAAkD;QACjG,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,kEAAkE;QAClE,uEAAuE;QACvE,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,GAAG,CAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxH,+FAA+F;QAC/F,oGAAoG;QACpG,8FAA8F;QAC9F,iGAAiG;QACjG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAG9D,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5B,0FAA0F;QAC1F,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9G,MAAM,EAAE,QAAQ;YAChB,IAAI;YACJ,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACxH,CAAC,CAAC,CAAC;QACJ,KAAK,MAAM,CAAC,IAAI,YAAY;YAAE,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACjI,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAAmC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;aACzH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,wFAAwF;QACxF,oFAAoF;QACpF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAmC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrH,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvH,qFAAqF;QACrF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAkC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACrH,MAAM,WAAW,GAAG,UAAU,CAAC,uBAAuB,CAClD,GAAG,EACH,YAAY,EACZ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,IAAI,IAAI,EAAE,GAAG,CAAC,sBAAsB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAC9H,CAAC;QACF,MAAM,QAAQ,GAAyB;YACnC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE;YAChF,yDAAyD;YACzD,iEAAiE;YACjE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE;YAExF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAAE;YACxH,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpH,+EAA+E;YAC/E;gBACI,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,WAAW,CAAC,OAAO;aAC/B;YACD,wEAAwE;YACxE,yGAAyG;YACzG,gHAAgH;YAChH,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACvH,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YAC9H,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE;YACvH,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;YACvG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAChG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE;YAC/H,kEAAkE;YAClE,gEAAgE;YAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,aAAa,EAAE;YACxF,oEAAoE;YACpE,iDAAiD;YACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE;YAChF,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE;SAC1E,CAAC;QACF,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC1E,IAAI,aAAa,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACzD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACxE,MAAM,iBAAiB,GAAG,cAAc,EAAE,OAAO,KAAK,WAAW,CAAC,OAAO;gBACrE,CAAC,CAAC,WAAW,CAAC,iBAAiB;gBAC/B,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3C,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC9E,OAAO,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;sBAC/D,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACtB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC;QACD,oEAAoE;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAuB,EAAE,CAAC,CAAC;YAC3D,GAAG,OAAO;YACV,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC1D,CAAC,CAAC,CAAC;QACJ,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrI,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,0EAA0E;IAC1E,wDAAwD;IACxD,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;QACxD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC3B,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aAC1F,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACzB,QAAQ,EAAE,iBAAiB,CAAC,WAAW,IAAI,KAAK,CAAC;YACjD,OAAO;SACV,CAAC,CAAC,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC7C,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACvD,MAAM,gBAAgB,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBACpF,CAAC;gBACF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;wBAAE,SAAS;gBACzF,CAAC;qBAAM,IAAI,gBAAiB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;oBAC7B,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,gBAAgB;oBAC1B,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;iBACvF,CAAC,CAAC,CAAC;YACR,CAAC;QACL,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,qEAAqE;IACrE,wEAAwE;IACxE,kDAAkD;IAClD,gBAAgB,CAAC,MAAqB,EAAE,QAAkB;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7E,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,+DAA+D;IAC/D,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,cAAsB;QAI7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAGjD,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,SAAS;YACnB,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC5F,CAAC,CAAC,CAAC;IACR,CAAC;IAED,8EAA8E;IAC9E,oEAAoE;IACpE,oEAAoE;IACpE,yEAAyE;IACzE,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,uBAAsC;QACpE,+EAA+E;QAC/E,iEAAiE;QACjE,gDAAgD;QAChD,EAAE;QACF,iEAAiE;QACjE,kEAAkE;QAClE,2BAA2B;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAS9C,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,KAAK,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,cAAc,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;mBACnD,CAAC,CAAC,SAAS,KAAK,GAAG;mBACnB,EAAE,KAAK,IAAI;mBACX,OAAO,EAAE,KAAK,QAAQ;mBACtB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;gBACnC,CAAC,CAAE,EAA+B,CAAC,WAAW;gBAC9C,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,WAAW,GAAG,cAA+C,CAAC;YACpE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;mBACvD,CAAC,CAAC,SAAS,KAAK,GAAG;mBACnB,EAAE,KAAK,IAAI;mBACX,OAAO,EAAE,KAAK,QAAQ;mBACtB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC;gBACvC,CAAC,CAAE,EAAmC,CAAC,eAAe;gBACtD,CAAC,CAAC,SAAS,CAAC;YAChB,IACI,kBAAkB,KAAK,SAAS;mBAC7B,CAAC,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EACvD,CAAC;gBACC,MAAM,IAAI,SAAS,CAAC,2EAA2E,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,SAAS,CAAC,8EAA8E,CAAC,CAAC;YACxG,CAAC;YACD,MAAM,eAAe,GAAG,kBAAkB,CAAC;YAC3C,OAAO;gBACH,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACvD,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvD,MAAM,EAAE;oBACJ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;oBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACvB;gBACD,MAAM,EAAE,CAAC,CAAC,SAAS;gBACnB,EAAE;gBACF,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,EAAE;gBACF,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,uBAAuB;oBACpC,CAAC,CAAC,aAAa,CAAC,IAAI;oBACpB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACnC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;gBACrD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;aAChE,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -55,6 +55,7 @@ export default class ResourceMutations {
|
|
|
55
55
|
});
|
|
56
56
|
prepareEditBatches(statements: readonly EditStatement[], context: EditPreparationContext, schemeCtx: PlurnkSchemeContext): Promise<void>;
|
|
57
57
|
preparedEditResult(statement: EditStatement): Promise<DispatchResult>;
|
|
58
|
+
withMergeFacts(statement: EditStatement, result: DispatchResult): DispatchResult;
|
|
58
59
|
settleEdit(statement: EditStatement, result: DispatchResult): void;
|
|
59
60
|
handleCopy(statement: CopyStatement, ctx: PlurnkSchemeContext): Promise<DispatchResult>;
|
|
60
61
|
handleMove(statement: MoveStatement, ctx: PlurnkSchemeContext): Promise<DispatchResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceMutations.d.ts","sourceRoot":"","sources":["../../src/core/ResourceMutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EAE5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,YAAY,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEjH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAsBzF,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourceMutations.d.ts","sourceRoot":"","sources":["../../src/core/ResourceMutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import DbProjectionCaps from "./caps/DbProjectionCaps.js";
|
|
|
8
8
|
import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
|
|
9
9
|
import EntryCrud from "../schemes/_entry-crud.js";
|
|
10
10
|
import Results from "./results.js";
|
|
11
|
+
import EntryManifest from "../schemes/_entry-manifest.js";
|
|
11
12
|
// Owns EDIT batch state and COPY/MOVE resource mutation composition.
|
|
12
13
|
// Dispatcher retains admission, generic scheme routing, proposal lifecycle, and durable operation recording.
|
|
13
14
|
class ResourceMutations {
|
|
@@ -45,8 +46,16 @@ class ResourceMutations {
|
|
|
45
46
|
}
|
|
46
47
|
async #resolveEditAnchors(statements, identity, schemeName, manifest, ctx) {
|
|
47
48
|
const anchored = statements.filter(({ lineMarker }) => LineAnchors.hasAnchor(lineMarker));
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
// {§edit-batch-merges} — a body that looks like a pasted READ rendering needs the current
|
|
50
|
+
// anchors to be verified, so it takes the anchored path even without an anchor of its own.
|
|
51
|
+
const looksRendered = ({ body }) => {
|
|
52
|
+
const rows = (body ?? "").split("\n").filter((row) => row.length > 0);
|
|
53
|
+
return rows.length > 0 && rows.every((row) => LineAnchors.isAnchoredLine(row));
|
|
54
|
+
};
|
|
55
|
+
const rendered = statements.some(looksRendered)
|
|
56
|
+
&& manifest.textEditScopes === true && manifest.writableBy.includes("model");
|
|
57
|
+
if (anchored.length === 0 && !rendered) {
|
|
58
|
+
return { statements: statements, precondition: null, prefixFacts: new Map() };
|
|
50
59
|
}
|
|
51
60
|
if (manifest.textEditScopes !== true || !manifest.writableBy.includes("model")) {
|
|
52
61
|
return {
|
|
@@ -67,7 +76,7 @@ class ResourceMutations {
|
|
|
67
76
|
}
|
|
68
77
|
const first = statements[0];
|
|
69
78
|
if (first === undefined)
|
|
70
|
-
return { statements: [], precondition: null };
|
|
79
|
+
return { statements: [], precondition: null, prefixFacts: new Map() };
|
|
71
80
|
const current = await this.#run(schemeName, {
|
|
72
81
|
op: "READ",
|
|
73
82
|
delimiter: first.delimiter,
|
|
@@ -113,7 +122,61 @@ class ResourceMutations {
|
|
|
113
122
|
}
|
|
114
123
|
const resolved = [];
|
|
115
124
|
const checks = [];
|
|
116
|
-
|
|
125
|
+
// {§edit-batch-receipt} — every anchor is resolved before any verdict, so a collision
|
|
126
|
+
// names each anchor that no longer resolves, not just the first (#428).
|
|
127
|
+
const stale = [];
|
|
128
|
+
// {§edit-batch-merges} — a body whose every line carries this resource's own rendered
|
|
129
|
+
// `@xxxxx L:` prefix, hash-verified at its ordinal against the current anchors, is the
|
|
130
|
+
// READ rendering pasted back: the prefixes are stripped and the row says so. A look-alike
|
|
131
|
+
// that does not verify is content and is written as authored, with the fact reported.
|
|
132
|
+
const prefixFacts = new Map();
|
|
133
|
+
let publishedReads = null;
|
|
134
|
+
const publishedAnchors = async () => {
|
|
135
|
+
if (publishedReads !== null)
|
|
136
|
+
return publishedReads;
|
|
137
|
+
const rows = await ctx.db.engine_render_log.all({ worker_id: ctx.workerId });
|
|
138
|
+
const reads = [];
|
|
139
|
+
for (const row of rows) {
|
|
140
|
+
if (row.op !== "READ" || row.status_rx !== 200 || typeof row.rx !== "string")
|
|
141
|
+
continue;
|
|
142
|
+
let parsed;
|
|
143
|
+
try {
|
|
144
|
+
parsed = JSON.parse(row.rx);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (parsed.lineAnchorIdentity !== lineAnchorIdentity || !Array.isArray(parsed.lineAnchors))
|
|
150
|
+
continue;
|
|
151
|
+
reads.push({ startLine: typeof parsed.startLine === "number" ? parsed.startLine : 1, anchors: parsed.lineAnchors });
|
|
152
|
+
}
|
|
153
|
+
publishedReads = reads;
|
|
154
|
+
return reads;
|
|
155
|
+
};
|
|
156
|
+
const stripRendered = async (statement) => {
|
|
157
|
+
const body = statement.body;
|
|
158
|
+
if (typeof body !== "string" || body.length === 0)
|
|
159
|
+
return statement;
|
|
160
|
+
const rows = body.split("\n");
|
|
161
|
+
const filled = rows.filter((row) => row.length > 0);
|
|
162
|
+
if (filled.length === 0 || !filled.every((row) => LineAnchors.isAnchoredLine(row)))
|
|
163
|
+
return statement;
|
|
164
|
+
const pasted = filled.map((row) => { const match = /^(@[0-9A-Za-z]{5}) +(\d+):/.exec(row); return { hash: match[1], line: Number(match[2]) }; });
|
|
165
|
+
const verifies = (anchors, startLine) => pasted.every(({ hash, line }) => anchors[line - startLine] === hash);
|
|
166
|
+
const current = verifies(lineAnchors, 1);
|
|
167
|
+
const source = current ? "current" : (await publishedAnchors()).some(({ anchors, startLine }) => verifies(anchors, startLine)) ? "log" : null;
|
|
168
|
+
if (source === null) {
|
|
169
|
+
prefixFacts.set(statement, { rule: "rendered-prefix-unverified", lines: filled.length });
|
|
170
|
+
return statement;
|
|
171
|
+
}
|
|
172
|
+
prefixFacts.set(statement, { rule: "rendered-prefix-stripped", lines: filled.length, source });
|
|
173
|
+
// A rendered row per line: a blank last line keeps its terminator so the paste
|
|
174
|
+
// reproduces exactly the lines it rendered.
|
|
175
|
+
const stripped = rows.map((row) => row.replace(/^@[0-9A-Za-z]{5} +\d+:/, ""));
|
|
176
|
+
return { ...statement, body: stripped.join("\n") + (stripped.length > 1 && stripped.at(-1) === "" ? "\n" : "") };
|
|
177
|
+
};
|
|
178
|
+
for (const authored of statements) {
|
|
179
|
+
const statement = await stripRendered(authored);
|
|
117
180
|
if (statement.lineMarker === null || !LineAnchors.hasAnchor(statement.lineMarker)) {
|
|
118
181
|
resolved.push(statement);
|
|
119
182
|
continue;
|
|
@@ -122,8 +185,10 @@ class ResourceMutations {
|
|
|
122
185
|
if (!resolution.ok) {
|
|
123
186
|
const { anchor, kind } = resolution.failure;
|
|
124
187
|
const invalid = kind === "invalid";
|
|
125
|
-
if (!invalid)
|
|
126
|
-
|
|
188
|
+
if (!invalid) {
|
|
189
|
+
stale.push({ anchor, kind, ...("matches" in resolution.failure ? { lines: resolution.failure.matches } : {}) });
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
127
192
|
return {
|
|
128
193
|
result: _a.#failure("line-anchor-invalid", 400, LineAnchors.invalidCoordinateDetail, {}, {
|
|
129
194
|
anchor,
|
|
@@ -131,7 +196,7 @@ class ResourceMutations {
|
|
|
131
196
|
recovery: LineAnchors.invalidCoordinateRecovery,
|
|
132
197
|
retryable: false,
|
|
133
198
|
}),
|
|
134
|
-
failedStatement:
|
|
199
|
+
failedStatement: authored,
|
|
135
200
|
};
|
|
136
201
|
}
|
|
137
202
|
for (const [index, anchor] of statement.lineMarker.marks.entries()) {
|
|
@@ -145,10 +210,24 @@ class ResourceMutations {
|
|
|
145
210
|
}
|
|
146
211
|
resolved.push({ ...statement, lineMarker: resolution.marker });
|
|
147
212
|
}
|
|
213
|
+
if (stale.length > 0) {
|
|
214
|
+
const named = stale.map((s) => s.kind === "ambiguous" ? `${s.anchor} (matches lines ${(s.lines ?? []).join(", ")})` : s.anchor).join(", ");
|
|
215
|
+
return {
|
|
216
|
+
result: EditCollision.result(lineAnchorIdentity, {}, {
|
|
217
|
+
staleAnchors: stale,
|
|
218
|
+
editCount: statements.length,
|
|
219
|
+
applied: 0,
|
|
220
|
+
recovery: `${named} no longer resolve${stale.length === 1 ? "s" : ""} — the line moved or changed since the READ that rendered ${stale.length === 1 ? "it" : "them"}; 0 of ${statements.length} edits in this batch were applied. READ the target again before selecting current coordinates.`,
|
|
221
|
+
}),
|
|
222
|
+
failedStatement: null,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
148
225
|
const uniqueChecks = [...new Map(checks.map((check) => [`${check.anchor}:${check.line}`, check])).values()];
|
|
149
226
|
return {
|
|
150
227
|
statements: resolved,
|
|
151
|
-
|
|
228
|
+
// A strip-only batch authored no anchor and so carries no compare-and-swap precondition.
|
|
229
|
+
precondition: uniqueChecks.length === 0 ? null : { identity: lineAnchorIdentity, checks: uniqueChecks },
|
|
230
|
+
prefixFacts,
|
|
152
231
|
};
|
|
153
232
|
}
|
|
154
233
|
async prepareEditBatches(statements, context, schemeCtx) {
|
|
@@ -172,6 +251,7 @@ class ResourceMutations {
|
|
|
172
251
|
const schemeName = schemeNameOf(first.target);
|
|
173
252
|
let initial;
|
|
174
253
|
let projections = null;
|
|
254
|
+
let prefixFacts = new Map();
|
|
175
255
|
let denial = group.map((statement) => this.#checkWritable(statement, origin, ctx.functionalityWorkerId)).find((result) => result !== null) ?? null;
|
|
176
256
|
if (denial === null) {
|
|
177
257
|
for (const statement of group) {
|
|
@@ -219,6 +299,7 @@ class ResourceMutations {
|
|
|
219
299
|
}
|
|
220
300
|
}
|
|
221
301
|
else {
|
|
302
|
+
prefixFacts = resolved.prefixFacts;
|
|
222
303
|
const addressedScheme = first.target?.kind === "url" ? first.target.scheme : schemeName;
|
|
223
304
|
const publishedChannel = first.target?.kind === "url"
|
|
224
305
|
? first.target.fragment ?? manifest.defaultChannel
|
|
@@ -277,15 +358,29 @@ class ResourceMutations {
|
|
|
277
358
|
: assertEditBatchReceipt(candidate),
|
|
278
359
|
settle: resolveSettled,
|
|
279
360
|
};
|
|
361
|
+
// {§edit-batch-merges} — the scheme's merge facts are keyed by authored index; a dropped
|
|
362
|
+
// duplicate has no effect in the applied-edits receipt, so receipt indices re-align.
|
|
363
|
+
const merges = initial.status < 400
|
|
364
|
+
? (initial.merges ?? [])
|
|
365
|
+
: [];
|
|
366
|
+
const DROPPING_RULES = new Set(["duplicate-of", "contained-relocated", "contained-already-applied"]);
|
|
367
|
+
const droppedIndices = new Set(merges.filter(({ rule }) => DROPPING_RULES.has(rule)).map(({ index }) => index));
|
|
280
368
|
let normalizationIndex = 0;
|
|
281
369
|
for (const [index, statement] of group.entries()) {
|
|
282
|
-
const
|
|
370
|
+
const dropped = droppedIndices.has(index);
|
|
371
|
+
const ownsNormalization = statement.lineMarker?.marks.length === 3 && initial.status < 400 && !dropped;
|
|
372
|
+
const own = merges.filter((merge) => merge.index === index).map(({ index: _index, ...fact }) => fact);
|
|
373
|
+
const prefix = prefixFacts.get(statement);
|
|
374
|
+
if (prefix !== undefined)
|
|
375
|
+
own.push(prefix);
|
|
283
376
|
this.#preparedEdits.set(statement, {
|
|
284
377
|
first: index === 0,
|
|
285
378
|
index,
|
|
286
379
|
normalizationIndex: ownsNormalization ? normalizationIndex++ : null,
|
|
287
380
|
projection: projections?.get(statement) ?? null,
|
|
288
381
|
batch,
|
|
382
|
+
receiptIndex: dropped ? null : index - [...droppedIndices].filter((d) => d < index).length,
|
|
383
|
+
merged: own,
|
|
289
384
|
});
|
|
290
385
|
}
|
|
291
386
|
}
|
|
@@ -306,20 +401,32 @@ class ResourceMutations {
|
|
|
306
401
|
const normalization = prepared.normalizationIndex === null
|
|
307
402
|
? undefined
|
|
308
403
|
: settled.scopeNormalizations?.[prepared.normalizationIndex];
|
|
309
|
-
const { scopeNormalizations: _scopeNormalizations, ...projectedSettlement } = settled;
|
|
310
|
-
const statementResult =
|
|
311
|
-
? projectedSettlement
|
|
312
|
-
: {
|
|
404
|
+
const { scopeNormalizations: _scopeNormalizations, merges: _merges, applied: _applied, merged: _merged, ...projectedSettlement } = settled;
|
|
405
|
+
const statementResult = {
|
|
406
|
+
...(normalization === undefined ? projectedSettlement : { ...projectedSettlement, scopeNormalizations: [normalization] }),
|
|
407
|
+
...(prepared.merged.length === 0 ? {} : { merged: prepared.merged }),
|
|
408
|
+
};
|
|
313
409
|
const aggregate = prepared.batch.aggregate;
|
|
314
410
|
if (aggregate === undefined)
|
|
315
411
|
return statementResult;
|
|
316
412
|
const receipt = assertEditBatchReceipt(aggregate);
|
|
317
|
-
|
|
413
|
+
// The settled result may already carry the first statement's projected receipt; every
|
|
414
|
+
// row projects its own from the batch aggregate.
|
|
415
|
+
const { editReceipt: _editReceipt, receipt: _receipt, ...withoutAggregate } = statementResult;
|
|
416
|
+
// A dropped duplicate applied nothing: its row carries the merge fact, not a twin's effect.
|
|
417
|
+
if (prepared.receiptIndex === null)
|
|
418
|
+
return withoutAggregate;
|
|
318
419
|
return {
|
|
319
420
|
...withoutAggregate,
|
|
320
|
-
receipt: projectEditReceipt(receipt, prepared.
|
|
421
|
+
receipt: projectEditReceipt(receipt, prepared.receiptIndex),
|
|
321
422
|
};
|
|
322
423
|
}
|
|
424
|
+
withMergeFacts(statement, result) {
|
|
425
|
+
const prepared = this.#preparedEdits.get(statement);
|
|
426
|
+
if (prepared === undefined || prepared.merged.length === 0)
|
|
427
|
+
return result;
|
|
428
|
+
return Results.assert({ ...result, merged: prepared.merged });
|
|
429
|
+
}
|
|
323
430
|
settleEdit(statement, result) {
|
|
324
431
|
const prepared = this.#preparedEdits.get(statement);
|
|
325
432
|
if (prepared?.first !== true)
|
|
@@ -966,7 +1073,11 @@ class ResourceMutations {
|
|
|
966
1073
|
: _a.#withEditMaterialization(exactWritten, editReceipt("", source.content, [{
|
|
967
1074
|
marker: { marks: [1, -1] },
|
|
968
1075
|
body: source.content,
|
|
969
|
-
}], parseIssues
|
|
1076
|
+
}], parseIssues,
|
|
1077
|
+
// {§edit-receipt-anchored-context} — the destination's READ identity
|
|
1078
|
+
destination.channel === destination.manifest.defaultChannel
|
|
1079
|
+
? EntryManifest.toPath(destination.scheme, storageAddress.authority, storageAddress.pathname)
|
|
1080
|
+
: `${EntryManifest.toPath(destination.scheme, storageAddress.authority, storageAddress.pathname)}#${PathSyntax.escapeTarget(destination.channel)}`));
|
|
970
1081
|
return this.#finalizeEffects(materialized, destination, [destinationEffect]);
|
|
971
1082
|
}
|
|
972
1083
|
async #copyOrchestration({ statement, source, destination, ctx, }) {
|
|
@@ -1244,13 +1355,25 @@ class ResourceMutations {
|
|
|
1244
1355
|
}
|
|
1245
1356
|
async settleProposal({ statement, result, settlement, ctx, ids, }) {
|
|
1246
1357
|
const withEffects = _a.#settleProposalEffects(result, settlement);
|
|
1247
|
-
const
|
|
1358
|
+
const settledMove = await this.#settleMoveProposal({
|
|
1248
1359
|
statement,
|
|
1249
1360
|
result,
|
|
1250
1361
|
settlement: withEffects,
|
|
1251
1362
|
ctx,
|
|
1252
1363
|
ids,
|
|
1253
1364
|
});
|
|
1365
|
+
// {§edit-batch-merges} — the applied result is what the row records; the statement's
|
|
1366
|
+
// merge facts ride it here, whichever route settled the proposal.
|
|
1367
|
+
const editStatement = statement.op === "EDIT" ? statement : null;
|
|
1368
|
+
const facts = editStatement === null ? [] : (this.#preparedEdits.get(editStatement)?.merged ?? []);
|
|
1369
|
+
const effective = editStatement === null || facts.length === 0
|
|
1370
|
+
? settledMove
|
|
1371
|
+
: {
|
|
1372
|
+
...settledMove,
|
|
1373
|
+
...(settledMove.applied === undefined ? {} : { applied: this.withMergeFacts(editStatement, settledMove.applied) }),
|
|
1374
|
+
// The accepted row is composed from resolution.result ({§proposal-projection}).
|
|
1375
|
+
resolution: { ...settledMove.resolution, result: { ...(settledMove.resolution.result ?? {}), merged: facts } },
|
|
1376
|
+
};
|
|
1254
1377
|
this.#recordEditSettlement(statement, effective);
|
|
1255
1378
|
return effective;
|
|
1256
1379
|
}
|