@geminilight/mindos 1.1.51 → 1.1.53
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/dist/agent/bridges/runtime-permission-bridge.d.ts +9 -6
- package/dist/agent/bridges/runtime-permission-bridge.d.ts.map +1 -1
- package/dist/agent/bridges/runtime-permission-bridge.js +48 -37
- package/dist/agent/bridges/runtime-permission-bridge.js.map +1 -1
- package/dist/agent/global-state.d.ts +13 -0
- package/dist/agent/global-state.d.ts.map +1 -1
- package/dist/agent/global-state.js +13 -0
- package/dist/agent/global-state.js.map +1 -1
- package/dist/agent/ledger/artifact-ledger.d.ts +84 -0
- package/dist/agent/ledger/artifact-ledger.d.ts.map +1 -0
- package/dist/agent/ledger/artifact-ledger.js +421 -0
- package/dist/agent/ledger/artifact-ledger.js.map +1 -0
- package/dist/agent/ledger/index.d.ts +1 -0
- package/dist/agent/ledger/index.d.ts.map +1 -1
- package/dist/agent/ledger/index.js +1 -0
- package/dist/agent/ledger/index.js.map +1 -1
- package/dist/agent/mindos-pi/permission/policy.d.ts +2 -1
- package/dist/agent/mindos-pi/permission/policy.d.ts.map +1 -1
- package/dist/agent/mindos-pi/permission/policy.js +3 -3
- package/dist/agent/mindos-pi/permission/policy.js.map +1 -1
- package/dist/agent/runtime/adapter-contracts.d.ts.map +1 -1
- package/dist/agent/runtime/adapter-contracts.js +38 -0
- package/dist/agent/runtime/adapter-contracts.js.map +1 -1
- package/dist/agent/runtime/adapter-output.d.ts +6 -0
- package/dist/agent/runtime/adapter-output.d.ts.map +1 -0
- package/dist/agent/runtime/adapter-output.js +48 -0
- package/dist/agent/runtime/adapter-output.js.map +1 -0
- package/dist/agent/runtime/capabilities.d.ts +2 -1
- package/dist/agent/runtime/capabilities.d.ts.map +1 -1
- package/dist/agent/runtime/capabilities.js +7 -0
- package/dist/agent/runtime/capabilities.js.map +1 -1
- package/dist/agent/runtime/catalog.d.ts +97 -0
- package/dist/agent/runtime/catalog.d.ts.map +1 -0
- package/dist/agent/runtime/catalog.js +261 -0
- package/dist/agent/runtime/catalog.js.map +1 -0
- package/dist/agent/runtime/compatibility.d.ts.map +1 -1
- package/dist/agent/runtime/compatibility.js +13 -11
- package/dist/agent/runtime/compatibility.js.map +1 -1
- package/dist/agent/runtime/descriptors.d.ts.map +1 -1
- package/dist/agent/runtime/descriptors.js +4 -3
- package/dist/agent/runtime/descriptors.js.map +1 -1
- package/dist/agent/runtime/detection.d.ts.map +1 -1
- package/dist/agent/runtime/detection.js +57 -0
- package/dist/agent/runtime/detection.js.map +1 -1
- package/dist/agent/runtime/extension-manifest.d.ts +115 -0
- package/dist/agent/runtime/extension-manifest.d.ts.map +1 -0
- package/dist/agent/runtime/extension-manifest.js +383 -0
- package/dist/agent/runtime/extension-manifest.js.map +1 -0
- package/dist/agent/runtime/index.d.ts +2 -0
- package/dist/agent/runtime/index.d.ts.map +1 -1
- package/dist/agent/runtime/index.js +2 -0
- package/dist/agent/runtime/index.js.map +1 -1
- package/dist/agent/runtime/registry.d.ts +21 -3
- package/dist/agent/runtime/registry.d.ts.map +1 -1
- package/dist/agent/runtime/registry.js +16 -5
- package/dist/agent/runtime/registry.js.map +1 -1
- package/dist/agent/runtime/run.d.ts +1 -1
- package/dist/agent/runtime/run.d.ts.map +1 -1
- package/dist/agent/turn/index.d.ts +22 -7
- package/dist/agent/turn/index.d.ts.map +1 -1
- package/dist/agent/turn/index.js +51 -2
- package/dist/agent/turn/index.js.map +1 -1
- package/dist/protocols/acp/agent-descriptors.d.ts +2 -1
- package/dist/protocols/acp/agent-descriptors.d.ts.map +1 -1
- package/dist/protocols/acp/agent-descriptors.js +89 -11
- package/dist/protocols/acp/agent-descriptors.js.map +1 -1
- package/dist/protocols/acp/detect-local.d.ts.map +1 -1
- package/dist/protocols/acp/detect-local.js +6 -4
- package/dist/protocols/acp/detect-local.js.map +1 -1
- package/dist/protocols/acp/handshake-health.d.ts +63 -0
- package/dist/protocols/acp/handshake-health.d.ts.map +1 -0
- package/dist/protocols/acp/handshake-health.js +113 -0
- package/dist/protocols/acp/handshake-health.js.map +1 -0
- package/dist/protocols/acp/index.d.ts +5 -1
- package/dist/protocols/acp/index.d.ts.map +1 -1
- package/dist/protocols/acp/index.js +28 -26
- package/dist/protocols/acp/index.js.map +1 -1
- package/dist/protocols/acp/mcp-session-inheritance.d.ts +50 -0
- package/dist/protocols/acp/mcp-session-inheritance.d.ts.map +1 -0
- package/dist/protocols/acp/mcp-session-inheritance.js +173 -0
- package/dist/protocols/acp/mcp-session-inheritance.js.map +1 -0
- package/dist/protocols/acp/session.d.ts +8 -1
- package/dist/protocols/acp/session.d.ts.map +1 -1
- package/dist/protocols/acp/session.js +271 -13
- package/dist/protocols/acp/session.js.map +1 -1
- package/dist/protocols/acp/subprocess.d.ts +9 -2
- package/dist/protocols/acp/subprocess.d.ts.map +1 -1
- package/dist/protocols/acp/subprocess.js +149 -31
- package/dist/protocols/acp/subprocess.js.map +1 -1
- package/dist/protocols/acp/types.d.ts +21 -0
- package/dist/protocols/acp/types.d.ts.map +1 -1
- package/dist/protocols/acp/types.js +3 -0
- package/dist/protocols/acp/types.js.map +1 -1
- package/dist/server/contract.d.ts.map +1 -1
- package/dist/server/contract.js +5 -0
- package/dist/server/contract.js.map +1 -1
- package/dist/server/handlers/agent-runtimes.d.ts.map +1 -1
- package/dist/server/handlers/agent-runtimes.js +7 -2
- package/dist/server/handlers/agent-runtimes.js.map +1 -1
- package/dist/server/handlers/agent-turn.js +18 -3
- package/dist/server/handlers/agent-turn.js.map +1 -1
- package/dist/server/handlers/runtime-adapter-projections.d.ts +33 -2
- package/dist/server/handlers/runtime-adapter-projections.d.ts.map +1 -1
- package/dist/server/handlers/runtime-adapter-projections.js +117 -15
- package/dist/server/handlers/runtime-adapter-projections.js.map +1 -1
- package/dist/server/handlers/runtime-artifact-projections.d.ts +21 -0
- package/dist/server/handlers/runtime-artifact-projections.d.ts.map +1 -1
- package/dist/server/handlers/runtime-artifact-projections.js +37 -7
- package/dist/server/handlers/runtime-artifact-projections.js.map +1 -1
- package/dist/server/handlers/runtime-control-plane.d.ts +168 -0
- package/dist/server/handlers/runtime-control-plane.d.ts.map +1 -0
- package/dist/server/handlers/runtime-control-plane.js +520 -0
- package/dist/server/handlers/runtime-control-plane.js.map +1 -0
- package/dist/server/handlers/runtime-extensions.d.ts +92 -0
- package/dist/server/handlers/runtime-extensions.d.ts.map +1 -0
- package/dist/server/handlers/runtime-extensions.js +405 -0
- package/dist/server/handlers/runtime-extensions.js.map +1 -0
- package/dist/server/handlers/runtime-readiness.d.ts +13 -3
- package/dist/server/handlers/runtime-readiness.d.ts.map +1 -1
- package/dist/server/handlers/runtime-readiness.js +74 -3
- package/dist/server/handlers/runtime-readiness.js.map +1 -1
- package/dist/server/handlers/runtime-session-projections.d.ts +7 -1
- package/dist/server/handlers/runtime-session-projections.d.ts.map +1 -1
- package/dist/server/handlers/runtime-session-projections.js +23 -0
- package/dist/server/handlers/runtime-session-projections.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +29 -1
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/route-ownership.d.ts.map +1 -1
- package/dist/server/route-ownership.js +5 -0
- package/dist/server/route-ownership.js.map +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { effectiveMindRoot } from '../../foundation/mind-root/index.js';
|
|
5
|
+
import { resolveExistingSafe } from '../../foundation/security/index.js';
|
|
6
|
+
import { AGENT_ARTIFACT_LEDGER_SHARD_KEY, AGENT_ARTIFACT_LEDGER_STORE_KEY, deleteProcessGlobal, getProcessGlobal, } from '../global-state.js';
|
|
7
|
+
import { redactSensitiveObject, redactSensitiveText } from '../redaction.js';
|
|
8
|
+
const MAX_ARTIFACTS = 1000;
|
|
9
|
+
const MAX_TEXT_CHARS = 1000;
|
|
10
|
+
const MAX_PATH_CHARS = 1200;
|
|
11
|
+
const LEDGER_DIR_NAME = '.mindos';
|
|
12
|
+
const SHARD_FILE_PATTERN = /^agent-artifact-ledger\.(\d+)-(\d+)\.jsonl$/;
|
|
13
|
+
const IMAGE_EXTENSION_RE = /\.(?:png|jpe?g|webp|gif|svg)$/i;
|
|
14
|
+
const PATCH_EXTENSION_RE = /\.(?:patch|diff)$/i;
|
|
15
|
+
const BRANCH_URI_RE = /^(?:git:)?branch:/i;
|
|
16
|
+
const PR_URI_RE = /^(?:https?:\/\/|git:)?(?:pull-request|pr)[:/]/i;
|
|
17
|
+
const INLINE_BLOB_PREFIX_RE = /^(?:data:|iVBORw0KGgo|\/9j\/|UklGR)/;
|
|
18
|
+
function shardIdentity() {
|
|
19
|
+
return getProcessGlobal(AGENT_ARTIFACT_LEDGER_SHARD_KEY, () => ({
|
|
20
|
+
pid: process.pid,
|
|
21
|
+
startTs: Math.round(performance.timeOrigin),
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
function resolveLedgerRoot() {
|
|
25
|
+
try {
|
|
26
|
+
const root = effectiveMindRoot();
|
|
27
|
+
return typeof root === 'string' && root.trim() ? root : undefined;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function ledgerDirPath(mindRoot) {
|
|
34
|
+
return resolveExistingSafe(mindRoot, LEDGER_DIR_NAME);
|
|
35
|
+
}
|
|
36
|
+
function ownShardPath(mindRoot) {
|
|
37
|
+
const { pid, startTs } = shardIdentity();
|
|
38
|
+
return resolveExistingSafe(mindRoot, path.posix.join(LEDGER_DIR_NAME, `agent-artifact-ledger.${pid}-${startTs}.jsonl`));
|
|
39
|
+
}
|
|
40
|
+
function emptyStore(mindRoot) {
|
|
41
|
+
return { records: [], ...(mindRoot ? { mindRoot } : {}) };
|
|
42
|
+
}
|
|
43
|
+
function getStore() {
|
|
44
|
+
const mindRoot = resolveLedgerRoot();
|
|
45
|
+
const store = getProcessGlobal(AGENT_ARTIFACT_LEDGER_STORE_KEY, () => (mindRoot ? readPersistedStore(mindRoot) : emptyStore()));
|
|
46
|
+
if (store.mindRoot !== mindRoot) {
|
|
47
|
+
deleteProcessGlobal(AGENT_ARTIFACT_LEDGER_STORE_KEY);
|
|
48
|
+
return getProcessGlobal(AGENT_ARTIFACT_LEDGER_STORE_KEY, () => (mindRoot ? readPersistedStore(mindRoot) : emptyStore()));
|
|
49
|
+
}
|
|
50
|
+
return store;
|
|
51
|
+
}
|
|
52
|
+
function listShardFiles(mindRoot) {
|
|
53
|
+
try {
|
|
54
|
+
const dir = ledgerDirPath(mindRoot);
|
|
55
|
+
if (!fs.existsSync(dir))
|
|
56
|
+
return [];
|
|
57
|
+
return fs.readdirSync(dir)
|
|
58
|
+
.filter((name) => SHARD_FILE_PATTERN.test(name))
|
|
59
|
+
.sort()
|
|
60
|
+
.map((name) => path.join(dir, name));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function readPersistedStore(mindRoot) {
|
|
67
|
+
const recordsById = new Map();
|
|
68
|
+
for (const file of listShardFiles(mindRoot)) {
|
|
69
|
+
try {
|
|
70
|
+
for (const line of fs.readFileSync(file, 'utf-8').split('\n')) {
|
|
71
|
+
const trimmed = line.trim();
|
|
72
|
+
if (!trimmed)
|
|
73
|
+
continue;
|
|
74
|
+
let op;
|
|
75
|
+
try {
|
|
76
|
+
op = JSON.parse(trimmed);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (op.version !== 1 || op.type !== 'artifact_upsert')
|
|
82
|
+
continue;
|
|
83
|
+
const record = normalizePersistedRecord(op.record);
|
|
84
|
+
if (!record)
|
|
85
|
+
continue;
|
|
86
|
+
const existing = recordsById.get(record.id);
|
|
87
|
+
if (!existing || record.updatedAt >= existing.updatedAt)
|
|
88
|
+
recordsById.set(record.id, record);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// A torn or unreadable shard must never block artifact projection.
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
mindRoot,
|
|
97
|
+
records: [...recordsById.values()]
|
|
98
|
+
.sort((a, b) => b.updatedAt - a.updatedAt)
|
|
99
|
+
.slice(0, MAX_ARTIFACTS),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function appendOwnShardOperation(store, record) {
|
|
103
|
+
if (!store.mindRoot)
|
|
104
|
+
return;
|
|
105
|
+
try {
|
|
106
|
+
const file = ownShardPath(store.mindRoot);
|
|
107
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
108
|
+
const op = {
|
|
109
|
+
version: 1,
|
|
110
|
+
type: 'artifact_upsert',
|
|
111
|
+
ts: Date.now(),
|
|
112
|
+
record,
|
|
113
|
+
};
|
|
114
|
+
fs.appendFileSync(file, `${JSON.stringify(op)}\n`, 'utf-8');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// Artifact persistence is diagnostic; it must not affect runtime execution.
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export function appendAgentArtifact(input) {
|
|
121
|
+
const normalized = normalizeArtifactInput(input);
|
|
122
|
+
if (!normalized)
|
|
123
|
+
return undefined;
|
|
124
|
+
const store = getStore();
|
|
125
|
+
const existingIndex = store.records.findIndex((record) => record.id === normalized.id);
|
|
126
|
+
const existing = existingIndex >= 0 ? store.records[existingIndex] : undefined;
|
|
127
|
+
const record = {
|
|
128
|
+
...existing,
|
|
129
|
+
...normalized,
|
|
130
|
+
createdAt: existing?.createdAt ?? normalized.createdAt,
|
|
131
|
+
updatedAt: normalized.updatedAt,
|
|
132
|
+
metadata: mergeMetadata(existing?.metadata, normalized.metadata),
|
|
133
|
+
};
|
|
134
|
+
if (existingIndex >= 0) {
|
|
135
|
+
store.records[existingIndex] = record;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
store.records.unshift(record);
|
|
139
|
+
}
|
|
140
|
+
store.records = store.records
|
|
141
|
+
.sort((a, b) => b.updatedAt - a.updatedAt)
|
|
142
|
+
.slice(0, MAX_ARTIFACTS);
|
|
143
|
+
appendOwnShardOperation(store, record);
|
|
144
|
+
return record;
|
|
145
|
+
}
|
|
146
|
+
export function listAgentArtifacts(options = {}) {
|
|
147
|
+
const limit = Math.max(1, Math.min(options.limit ?? MAX_ARTIFACTS, MAX_ARTIFACTS));
|
|
148
|
+
return getStore().records
|
|
149
|
+
.filter((record) => !options.runtimeId || record.runtimeId === options.runtimeId)
|
|
150
|
+
.filter((record) => !options.sessionId || record.sessionId === options.sessionId)
|
|
151
|
+
.filter((record) => !options.externalSessionId || record.externalSessionId === options.externalSessionId)
|
|
152
|
+
.filter((record) => !options.runId || record.runId === options.runId)
|
|
153
|
+
.filter((record) => !options.toolCallId || record.toolCallId === options.toolCallId)
|
|
154
|
+
.filter((record) => !options.kind || record.kind === options.kind)
|
|
155
|
+
.filter((record) => !options.source || record.source === options.source)
|
|
156
|
+
.slice(0, limit);
|
|
157
|
+
}
|
|
158
|
+
export function recordArtifactsFromAcpToolCall(input) {
|
|
159
|
+
const pointers = artifactPointersFromAcpToolCall(input.toolCall);
|
|
160
|
+
const records = [];
|
|
161
|
+
for (const pointer of pointers) {
|
|
162
|
+
const record = appendAgentArtifact({
|
|
163
|
+
runtimeId: input.runtimeId,
|
|
164
|
+
agentKind: 'acp',
|
|
165
|
+
source: 'acp-tool-call',
|
|
166
|
+
status: normalizeArtifactStatus(input.toolCall.status),
|
|
167
|
+
sessionId: input.sessionId,
|
|
168
|
+
externalSessionId: input.externalSessionId,
|
|
169
|
+
runId: input.runId,
|
|
170
|
+
cwd: input.cwd,
|
|
171
|
+
toolCallId: input.toolCall.toolCallId,
|
|
172
|
+
toolName: input.toolCall.kind ?? 'tool',
|
|
173
|
+
title: input.toolCall.title,
|
|
174
|
+
summary: pointer.summary,
|
|
175
|
+
path: pointer.path,
|
|
176
|
+
line: pointer.line,
|
|
177
|
+
uri: pointer.uri,
|
|
178
|
+
mimeType: pointer.mimeType,
|
|
179
|
+
kind: pointer.kind ?? kindFromAcpToolCall(input.toolCall, pointer),
|
|
180
|
+
metadata: {
|
|
181
|
+
sourceStatus: input.toolCall.status,
|
|
182
|
+
...(input.toolCall.kind ? { acpToolKind: input.toolCall.kind } : {}),
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
if (record)
|
|
186
|
+
records.push(record);
|
|
187
|
+
}
|
|
188
|
+
return records;
|
|
189
|
+
}
|
|
190
|
+
export function reloadAgentArtifactsFromDiskForTest() {
|
|
191
|
+
deleteProcessGlobal(AGENT_ARTIFACT_LEDGER_STORE_KEY);
|
|
192
|
+
getStore();
|
|
193
|
+
}
|
|
194
|
+
export function resetAgentArtifactsForTest() {
|
|
195
|
+
deleteProcessGlobal(AGENT_ARTIFACT_LEDGER_STORE_KEY);
|
|
196
|
+
}
|
|
197
|
+
function artifactPointersFromAcpToolCall(toolCall) {
|
|
198
|
+
const pointers = [];
|
|
199
|
+
for (const location of toolCall.locations ?? []) {
|
|
200
|
+
if (!location?.path)
|
|
201
|
+
continue;
|
|
202
|
+
pointers.push({
|
|
203
|
+
path: location.path,
|
|
204
|
+
...(Number.isFinite(location.line) ? { line: location.line } : {}),
|
|
205
|
+
kind: kindFromPath(location.path),
|
|
206
|
+
summary: toolCall.title,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
for (const block of toolCall.content ?? []) {
|
|
210
|
+
const pointer = pointerFromContentBlock(block);
|
|
211
|
+
if (pointer)
|
|
212
|
+
pointers.push(pointer);
|
|
213
|
+
}
|
|
214
|
+
return dedupePointers(pointers);
|
|
215
|
+
}
|
|
216
|
+
function pointerFromContentBlock(block) {
|
|
217
|
+
if (block.type === 'resource_link') {
|
|
218
|
+
return pointerFromUri(block.uri, block.name);
|
|
219
|
+
}
|
|
220
|
+
if (block.type === 'resource') {
|
|
221
|
+
return pointerFromUri(block.resource.uri);
|
|
222
|
+
}
|
|
223
|
+
if (block.type === 'image' && block.mimeType && !INLINE_BLOB_PREFIX_RE.test(block.data)) {
|
|
224
|
+
return {
|
|
225
|
+
uri: truncateText(block.data, MAX_PATH_CHARS),
|
|
226
|
+
mimeType: truncateText(block.mimeType, 120),
|
|
227
|
+
kind: 'image',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
function pointerFromUri(uri, title) {
|
|
233
|
+
const normalized = sanitizePointerText(uri, MAX_PATH_CHARS);
|
|
234
|
+
if (!normalized || INLINE_BLOB_PREFIX_RE.test(normalized))
|
|
235
|
+
return null;
|
|
236
|
+
if (normalized.startsWith('file://')) {
|
|
237
|
+
const filePath = normalized.slice('file://'.length);
|
|
238
|
+
return {
|
|
239
|
+
path: filePath,
|
|
240
|
+
uri: normalized,
|
|
241
|
+
kind: kindFromPath(filePath),
|
|
242
|
+
...(title ? { summary: sanitizePointerText(title, MAX_TEXT_CHARS) } : {}),
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
uri: normalized,
|
|
247
|
+
kind: kindFromUri(normalized),
|
|
248
|
+
...(title ? { summary: sanitizePointerText(title, MAX_TEXT_CHARS) } : {}),
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function normalizeArtifactInput(input) {
|
|
252
|
+
const runtimeId = sanitizePointerText(input.runtimeId, 160);
|
|
253
|
+
if (!runtimeId)
|
|
254
|
+
return null;
|
|
255
|
+
const pathValue = sanitizePointerText(input.path, MAX_PATH_CHARS);
|
|
256
|
+
const uriValue = sanitizePointerText(input.uri, MAX_PATH_CHARS);
|
|
257
|
+
if (!pathValue && !uriValue && !input.id)
|
|
258
|
+
return null;
|
|
259
|
+
const now = Date.now();
|
|
260
|
+
const baseForId = input.id ?? [
|
|
261
|
+
runtimeId,
|
|
262
|
+
input.sessionId,
|
|
263
|
+
input.externalSessionId,
|
|
264
|
+
input.runId,
|
|
265
|
+
input.toolCallId,
|
|
266
|
+
pathValue,
|
|
267
|
+
input.line,
|
|
268
|
+
uriValue,
|
|
269
|
+
].filter((part) => part !== undefined && part !== '').join('|');
|
|
270
|
+
const id = sanitizePointerText(input.id, 240) ?? `artifact-${hashText(baseForId)}`;
|
|
271
|
+
return {
|
|
272
|
+
schemaVersion: 1,
|
|
273
|
+
id,
|
|
274
|
+
runtimeId,
|
|
275
|
+
agentKind: input.agentKind ?? 'acp',
|
|
276
|
+
source: input.source,
|
|
277
|
+
kind: input.kind ?? kindFromPath(pathValue) ?? kindFromUri(uriValue) ?? 'unknown',
|
|
278
|
+
status: normalizeArtifactStatus(input.status),
|
|
279
|
+
createdAt: now,
|
|
280
|
+
updatedAt: now,
|
|
281
|
+
...(sanitizePointerText(input.sessionId, 240) ? { sessionId: sanitizePointerText(input.sessionId, 240) } : {}),
|
|
282
|
+
...(sanitizePointerText(input.externalSessionId, 240) ? { externalSessionId: sanitizePointerText(input.externalSessionId, 240) } : {}),
|
|
283
|
+
...(sanitizePointerText(input.runId, 240) ? { runId: sanitizePointerText(input.runId, 240) } : {}),
|
|
284
|
+
...(sanitizePointerText(input.toolCallId, 240) ? { toolCallId: sanitizePointerText(input.toolCallId, 240) } : {}),
|
|
285
|
+
...(sanitizePointerText(input.toolName, 240) ? { toolName: sanitizePointerText(input.toolName, 240) } : {}),
|
|
286
|
+
...(sanitizePointerText(input.title, 300) ? { title: sanitizePointerText(input.title, 300) } : {}),
|
|
287
|
+
...(sanitizePointerText(input.summary, MAX_TEXT_CHARS) ? { summary: sanitizePointerText(input.summary, MAX_TEXT_CHARS) } : {}),
|
|
288
|
+
...(sanitizePointerText(input.cwd, MAX_PATH_CHARS) ? { cwd: sanitizePointerText(input.cwd, MAX_PATH_CHARS) } : {}),
|
|
289
|
+
...(pathValue ? { path: pathValue } : {}),
|
|
290
|
+
...(Number.isFinite(input.line) && input.line !== undefined ? { line: Math.max(1, Math.floor(input.line)) } : {}),
|
|
291
|
+
...(uriValue ? { uri: uriValue } : {}),
|
|
292
|
+
...(sanitizePointerText(input.mimeType, 120) ? { mimeType: sanitizePointerText(input.mimeType, 120) } : {}),
|
|
293
|
+
...(typeof input.size === 'number' && Number.isFinite(input.size) && input.size >= 0 ? { size: Math.floor(input.size) } : {}),
|
|
294
|
+
...(input.metadata ? { metadata: sanitizeMetadata(input.metadata) } : {}),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
function normalizePersistedRecord(value) {
|
|
298
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
299
|
+
return null;
|
|
300
|
+
const record = value;
|
|
301
|
+
if (record.schemaVersion !== 1)
|
|
302
|
+
return null;
|
|
303
|
+
if (typeof record.id !== 'string' || typeof record.runtimeId !== 'string')
|
|
304
|
+
return null;
|
|
305
|
+
if (!isArtifactSource(record.source) || !isArtifactKind(record.kind) || !isArtifactStatus(record.status))
|
|
306
|
+
return null;
|
|
307
|
+
if (typeof record.createdAt !== 'number' || typeof record.updatedAt !== 'number')
|
|
308
|
+
return null;
|
|
309
|
+
const normalized = normalizeArtifactInput({
|
|
310
|
+
...record,
|
|
311
|
+
id: record.id,
|
|
312
|
+
runtimeId: record.runtimeId,
|
|
313
|
+
source: record.source,
|
|
314
|
+
kind: record.kind,
|
|
315
|
+
status: record.status,
|
|
316
|
+
});
|
|
317
|
+
if (!normalized)
|
|
318
|
+
return null;
|
|
319
|
+
return {
|
|
320
|
+
...normalized,
|
|
321
|
+
createdAt: record.createdAt,
|
|
322
|
+
updatedAt: record.updatedAt,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
function normalizeArtifactStatus(status) {
|
|
326
|
+
if (status === 'pending' || status === 'in_progress' || status === 'completed' || status === 'failed')
|
|
327
|
+
return status;
|
|
328
|
+
return 'unknown';
|
|
329
|
+
}
|
|
330
|
+
function isArtifactSource(source) {
|
|
331
|
+
return source === 'acp-tool-call' || source === 'runtime-output' || source === 'manual';
|
|
332
|
+
}
|
|
333
|
+
function isArtifactKind(kind) {
|
|
334
|
+
return kind === 'file'
|
|
335
|
+
|| kind === 'image'
|
|
336
|
+
|| kind === 'diff'
|
|
337
|
+
|| kind === 'patch'
|
|
338
|
+
|| kind === 'checkpoint'
|
|
339
|
+
|| kind === 'branch'
|
|
340
|
+
|| kind === 'pr'
|
|
341
|
+
|| kind === 'uri'
|
|
342
|
+
|| kind === 'unknown';
|
|
343
|
+
}
|
|
344
|
+
function isArtifactStatus(status) {
|
|
345
|
+
return status === 'pending'
|
|
346
|
+
|| status === 'in_progress'
|
|
347
|
+
|| status === 'completed'
|
|
348
|
+
|| status === 'failed'
|
|
349
|
+
|| status === 'unknown';
|
|
350
|
+
}
|
|
351
|
+
function kindFromAcpToolCall(toolCall, pointer) {
|
|
352
|
+
if (pointer.kind)
|
|
353
|
+
return pointer.kind;
|
|
354
|
+
const pathKind = kindFromPath(pointer.path);
|
|
355
|
+
if (pathKind)
|
|
356
|
+
return pathKind;
|
|
357
|
+
const uriKind = kindFromUri(pointer.uri);
|
|
358
|
+
if (uriKind)
|
|
359
|
+
return uriKind;
|
|
360
|
+
if (toolCall.kind === 'edit' || toolCall.kind === 'read' || toolCall.kind === 'delete' || toolCall.kind === 'move' || toolCall.kind === 'search') {
|
|
361
|
+
return 'file';
|
|
362
|
+
}
|
|
363
|
+
return 'unknown';
|
|
364
|
+
}
|
|
365
|
+
function kindFromPath(value) {
|
|
366
|
+
if (!value)
|
|
367
|
+
return undefined;
|
|
368
|
+
if (IMAGE_EXTENSION_RE.test(value))
|
|
369
|
+
return 'image';
|
|
370
|
+
if (PATCH_EXTENSION_RE.test(value))
|
|
371
|
+
return value.toLowerCase().endsWith('.patch') ? 'patch' : 'diff';
|
|
372
|
+
return 'file';
|
|
373
|
+
}
|
|
374
|
+
function kindFromUri(value) {
|
|
375
|
+
if (!value)
|
|
376
|
+
return undefined;
|
|
377
|
+
if (BRANCH_URI_RE.test(value))
|
|
378
|
+
return 'branch';
|
|
379
|
+
if (PR_URI_RE.test(value))
|
|
380
|
+
return 'pr';
|
|
381
|
+
if (IMAGE_EXTENSION_RE.test(value))
|
|
382
|
+
return 'image';
|
|
383
|
+
if (PATCH_EXTENSION_RE.test(value))
|
|
384
|
+
return value.toLowerCase().endsWith('.patch') ? 'patch' : 'diff';
|
|
385
|
+
return 'uri';
|
|
386
|
+
}
|
|
387
|
+
function dedupePointers(pointers) {
|
|
388
|
+
const seen = new Set();
|
|
389
|
+
const deduped = [];
|
|
390
|
+
for (const pointer of pointers) {
|
|
391
|
+
const key = `${pointer.path ?? ''}:${pointer.line ?? ''}:${pointer.uri ?? ''}`;
|
|
392
|
+
if (seen.has(key))
|
|
393
|
+
continue;
|
|
394
|
+
seen.add(key);
|
|
395
|
+
deduped.push(pointer);
|
|
396
|
+
}
|
|
397
|
+
return deduped;
|
|
398
|
+
}
|
|
399
|
+
function sanitizePointerText(value, maxLength) {
|
|
400
|
+
if (typeof value !== 'string')
|
|
401
|
+
return undefined;
|
|
402
|
+
const text = redactSensitiveText(value).trim();
|
|
403
|
+
if (!text || INLINE_BLOB_PREFIX_RE.test(text))
|
|
404
|
+
return undefined;
|
|
405
|
+
return truncateText(text, maxLength);
|
|
406
|
+
}
|
|
407
|
+
function truncateText(value, maxLength) {
|
|
408
|
+
return value.length > maxLength ? `${value.slice(0, maxLength)}...` : value;
|
|
409
|
+
}
|
|
410
|
+
function sanitizeMetadata(metadata) {
|
|
411
|
+
return redactSensitiveObject(metadata);
|
|
412
|
+
}
|
|
413
|
+
function mergeMetadata(existing, next) {
|
|
414
|
+
if (!existing && !next)
|
|
415
|
+
return undefined;
|
|
416
|
+
return sanitizeMetadata({ ...(existing ?? {}), ...(next ?? {}) });
|
|
417
|
+
}
|
|
418
|
+
function hashText(value) {
|
|
419
|
+
return createHash('sha256').update(value).digest('hex').slice(0, 24);
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=artifact-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-ledger.js","sourceRoot":"","sources":["../../../src/agent/ledger/artifact-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAiH7E,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,kBAAkB,GAAG,6CAA6C,CAAC;AACzE,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAChD,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,SAAS,GAAG,gDAAgD,CAAC;AACnE,MAAM,qBAAqB,GAAG,qCAAqC,CAAC;AAEpE,SAAS,aAAa;IACpB,OAAO,gBAAgB,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;KAC5C,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACjC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACzC,OAAO,mBAAmB,CACxB,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,yBAAyB,GAAG,IAAI,OAAO,QAAQ,CAAC,CAClF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,QAAiB;IACnC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,gBAAgB,CAC5B,+BAA+B,EAC/B,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAC/D,CAAC;IACF,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;QACrD,OAAO,gBAAgB,CACrB,+BAA+B,EAC/B,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;aACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/C,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,EAAmC,CAAC;gBACxC,IAAI,CAAC;oBAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACxF,IAAI,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB;oBAAE,SAAS;gBAChE,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;oBAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IACD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;aACzC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA0B,EAAE,MAAiC;IAC5F,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO;IAC5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,GAA2B;YACjC,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,MAAM;SACP,CAAC;QACF,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAElC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,MAAM,GAA8B;QACxC,GAAG,QAAQ;QACX,GAAG,UAAU;QACb,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,UAAU,CAAC,SAAS;QACtD,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;KACjE,CAAC;IAEF,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;SAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;SACzC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC3B,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAqC,EAAE;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IACnF,OAAO,QAAQ,EAAE,CAAC,OAAO;SACtB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;SAChF,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC;SAChF,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC;SACxG,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;SACpE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;SACnF,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;SACjE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;SACvE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAA0C;IACvF,MAAM,QAAQ,GAAG,+BAA+B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;YACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM;YACvC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;YAClE,QAAQ,EAAE;gBACR,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACnC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;SACF,CAAC,CAAC;QACH,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;IACrD,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAyB;IAQhE,MAAM,QAAQ,GAOT,EAAE,CAAC;IAER,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,IAAI;YAAE,SAAS;QAC9B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjC,OAAO,EAAE,QAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAsB;IAOrD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxF,OAAO;YACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC;YAC7C,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC3C,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,KAAc;IAOjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,UAAU;YACf,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA+B;IAC7D,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAChE,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,IAAI;QAC5B,SAAS;QACT,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,UAAU;QAChB,SAAS;QACT,KAAK,CAAC,IAAI;QACV,QAAQ;KACT,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,YAAY,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACnF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,EAAE;QACF,SAAS;QACT,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;QACnC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,SAAS;QACjF,MAAM,EAAE,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7C,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtI,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9H,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,MAAM,GAAG,KAA2C,CAAC;IAC3D,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtH,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9F,MAAM,UAAU,GAAG,sBAAsB,CAAC;QACxC,GAAG,MAAM;QACT,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IACH,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO;QACL,GAAG,UAAU;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAe;IAC9C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,OAAO,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,QAAQ,CAAC;AAC1F,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO,IAAI,KAAK,MAAM;WACjB,IAAI,KAAK,OAAO;WAChB,IAAI,KAAK,MAAM;WACf,IAAI,KAAK,OAAO;WAChB,IAAI,KAAK,YAAY;WACrB,IAAI,KAAK,QAAQ;WACjB,IAAI,KAAK,IAAI;WACb,IAAI,KAAK,KAAK;WACd,IAAI,KAAK,SAAS,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,OAAO,MAAM,KAAK,SAAS;WACtB,MAAM,KAAK,aAAa;WACxB,MAAM,KAAK,WAAW;WACtB,MAAM,KAAK,QAAQ;WACnB,MAAM,KAAK,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAyB,EACzB,OAAkE;IAElE,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjJ,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACrG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACnD,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACrG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAA2D,QAAa;IAC7F,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,SAAiB;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,SAAiB;IACpD,OAAO,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9E,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAiC;IACzD,OAAO,qBAAqB,CAAC,QAAQ,CAA4B,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CACpB,QAA6C,EAC7C,IAAyC;IAEzC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,gBAAgB,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/ledger/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/ledger/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/ledger/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/ledger/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type MindosPermissionMode } from '../../permission/index.js';
|
|
2
2
|
export type MindosHarnessPermissionMode = 'readonly' | 'agent';
|
|
3
|
+
export type MindosAcpPermissionMode = 'readonly' | 'ask' | 'auto' | 'full';
|
|
3
4
|
export type MindosKbWriteScope = 'none' | 'bounded' | 'all';
|
|
4
5
|
export type MindosExtensionScope = 'kb' | 'ask-user-question' | 'pi-web-access' | 'user-extensions' | 'pi-mcp-adapter' | 'im' | 'subagents' | 'schedule-prompt';
|
|
5
6
|
export interface MindosAgentToolScope {
|
|
@@ -20,7 +21,7 @@ export interface MindosAgentPermissionPolicy {
|
|
|
20
21
|
mode: MindosPermissionMode;
|
|
21
22
|
permissionMode: MindosPermissionMode;
|
|
22
23
|
runtimePermissionMode: MindosHarnessPermissionMode;
|
|
23
|
-
acpPermissionMode:
|
|
24
|
+
acpPermissionMode: MindosAcpPermissionMode;
|
|
24
25
|
toolScope: MindosAgentToolScope;
|
|
25
26
|
kbToolNames: readonly string[];
|
|
26
27
|
writeToolNames: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/mindos-pi/permission/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC5B,IAAI,GACJ,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,IAAI,GACJ,WAAW,GACX,iBAAiB,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,oBAAoB,CAAC;IACrC,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/agent/mindos-pi/permission/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC5B,IAAI,GACJ,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,IAAI,GACJ,WAAW,GACX,iBAAiB,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,oBAAoB,CAAC;IACrC,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,SAAS,EAAE,oBAAoB,CAAC;IAChC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,eAAe,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAED,eAAO,MAAM,uBAAuB,6MAa1B,CAAC;AAEX,eAAO,MAAM,6BAA6B,gHAQhC,CAAC;AAEX,eAAO,MAAM,iCAAiC,6KAWpC,CAAC;AAEX,eAAO,MAAM,wBAAwB,kTAoB3B,CAAC;AA6IX,wBAAgB,iCAAiC,CAC/C,IAAI,GAAE,oBAA4B,GACjC,2BAA2B,CAY7B;AAED,wBAAgB,0CAA0C,CACxD,IAAI,GAAE,oBAA4B,GACjC,2BAA2B,CAyB7B;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,OAAO,EAChB,YAAY,GAAE,oBAA4B,GACzC,2BAA2B,CAQ7B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,2BAA2B,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAGtG;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,2BAA2B,EACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAET"}
|
|
@@ -152,7 +152,7 @@ function askPolicy() {
|
|
|
152
152
|
mode: 'ask',
|
|
153
153
|
permissionMode: 'ask',
|
|
154
154
|
runtimePermissionMode: 'agent',
|
|
155
|
-
acpPermissionMode: '
|
|
155
|
+
acpPermissionMode: 'ask',
|
|
156
156
|
toolScope: askToolScope(),
|
|
157
157
|
kbToolNames: [...MINDOS_ASK_KB_TOOL_NAMES],
|
|
158
158
|
writeToolNames: [...MINDOS_WRITE_TOOL_NAMES],
|
|
@@ -164,7 +164,7 @@ function autoPolicy() {
|
|
|
164
164
|
mode: 'auto',
|
|
165
165
|
permissionMode: 'auto',
|
|
166
166
|
runtimePermissionMode: 'agent',
|
|
167
|
-
acpPermissionMode: '
|
|
167
|
+
acpPermissionMode: 'auto',
|
|
168
168
|
toolScope: autoToolScope(),
|
|
169
169
|
kbToolNames: [],
|
|
170
170
|
writeToolNames: [...MINDOS_WRITE_TOOL_NAMES],
|
|
@@ -176,7 +176,7 @@ function fullPolicy() {
|
|
|
176
176
|
mode: 'full',
|
|
177
177
|
permissionMode: 'full',
|
|
178
178
|
runtimePermissionMode: 'agent',
|
|
179
|
-
acpPermissionMode: '
|
|
179
|
+
acpPermissionMode: 'full',
|
|
180
180
|
toolScope: fullToolScope(),
|
|
181
181
|
kbToolNames: [],
|
|
182
182
|
writeToolNames: [...MINDOS_WRITE_TOOL_NAMES],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/agent/mindos-pi/permission/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAE9B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/agent/mindos-pi/permission/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-contracts.d.ts","sourceRoot":"","sources":["../../../src/agent/runtime/adapter-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,
|
|
1
|
+
{"version":3,"file":"adapter-contracts.d.ts","sourceRoot":"","sources":["../../../src/agent/runtime/adapter-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAI3B,iCAAiC,EACjC,oBAAoB,EACpB,eAAe,EAChB,MAAM,eAAe,CAAC;AA2DvB,wBAAgB,qBAAqB,IAAI,2BAA2B,CAmCnE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,iCAAiC,CAAC;IAClD,UAAU,CAAC,EAAE,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;CAC/D,GAAG,2BAA2B,CAuD9B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,2BAA2B,CAkD3F"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hasDeclaredRuntimeOutputContract, normalizeRuntimeOutputKinds, reviewableRuntimeOutputKinds, } from './adapter-output.js';
|
|
1
2
|
function declaredCommands(metadata) {
|
|
2
3
|
return (metadata?.commands ?? []).map((command) => ({
|
|
3
4
|
name: command.name,
|
|
@@ -20,6 +21,21 @@ function protocolContract(input) {
|
|
|
20
21
|
summary: input.summary,
|
|
21
22
|
};
|
|
22
23
|
}
|
|
24
|
+
function outputContract(input) {
|
|
25
|
+
const outputKinds = normalizeRuntimeOutputKinds(input.metadata, input.fallback ?? ['text']);
|
|
26
|
+
const reviewableOutputKinds = reviewableRuntimeOutputKinds(outputKinds);
|
|
27
|
+
return {
|
|
28
|
+
discovery: input.discovery,
|
|
29
|
+
outputKinds,
|
|
30
|
+
reviewableOutputKinds,
|
|
31
|
+
supportsFileChanges: outputKinds.includes('diff'),
|
|
32
|
+
supportsArtifacts: outputKinds.includes('artifact'),
|
|
33
|
+
supportsCheckpoints: outputKinds.includes('checkpoint'),
|
|
34
|
+
supportsBranches: outputKinds.includes('branch'),
|
|
35
|
+
supportsPullRequests: outputKinds.includes('pr'),
|
|
36
|
+
summary: input.summary,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
23
39
|
export function mindosAdapterContract() {
|
|
24
40
|
return {
|
|
25
41
|
schemaVersion: 1,
|
|
@@ -44,6 +60,11 @@ export function mindosAdapterContract() {
|
|
|
44
60
|
commands: [],
|
|
45
61
|
summary: 'MindOS slash commands are assembled from enabled MindOS skills; runtime-native command discovery is not needed.',
|
|
46
62
|
},
|
|
63
|
+
output: outputContract({
|
|
64
|
+
discovery: 'mindos-default',
|
|
65
|
+
fallback: ['text', 'artifact'],
|
|
66
|
+
summary: 'MindOS emits text and pointer-backed artifacts through its internal runtime ledger.',
|
|
67
|
+
}),
|
|
47
68
|
protocol: protocolContract({
|
|
48
69
|
supportsStreaming: true,
|
|
49
70
|
authRequired: false,
|
|
@@ -89,6 +110,15 @@ export function nativeAdapterContract(input) {
|
|
|
89
110
|
commands: [],
|
|
90
111
|
summary: 'Runtime-native command discovery is delegated to the external coding runtime when it exposes command events.',
|
|
91
112
|
},
|
|
113
|
+
output: outputContract({
|
|
114
|
+
discovery: 'runtime-native',
|
|
115
|
+
fallback: isCodex
|
|
116
|
+
? ['text', 'diff', 'checkpoint', 'artifact', 'branch', 'pr']
|
|
117
|
+
: ['text', 'diff', 'artifact'],
|
|
118
|
+
summary: isCodex
|
|
119
|
+
? 'Codex owns reviewable runtime output including diffs, checkpoints, artifacts, branches, and PR references.'
|
|
120
|
+
: 'Claude Code owns reviewable runtime output including text, diffs, and artifacts.',
|
|
121
|
+
}),
|
|
92
122
|
protocol: protocolContract({
|
|
93
123
|
supportsStreaming: true,
|
|
94
124
|
authRequired: true,
|
|
@@ -103,6 +133,7 @@ export function acpAdapterContract(agent) {
|
|
|
103
133
|
const commands = declaredCommands(metadata);
|
|
104
134
|
const resolvedCommand = agent.resolvedCommand?.cmd;
|
|
105
135
|
const healthCommand = metadata?.healthCheck?.command;
|
|
136
|
+
const declaredOutput = hasDeclaredRuntimeOutputContract(metadata);
|
|
106
137
|
return {
|
|
107
138
|
schemaVersion: 1,
|
|
108
139
|
connection: {
|
|
@@ -133,6 +164,13 @@ export function acpAdapterContract(agent) {
|
|
|
133
164
|
? 'This ACP adapter declares static slash commands for MindOS to surface in command-aware UI.'
|
|
134
165
|
: 'MindOS has no adapter-specific command declaration yet; runtime command discovery remains unknown.',
|
|
135
166
|
},
|
|
167
|
+
output: outputContract({
|
|
168
|
+
discovery: declaredOutput ? 'adapter-declared' : 'unknown',
|
|
169
|
+
metadata,
|
|
170
|
+
summary: declaredOutput
|
|
171
|
+
? 'This ACP adapter declares durable output kinds that MindOS can project into artifact and file-change workflows.'
|
|
172
|
+
: 'MindOS only knows this ACP adapter can return text; durable artifacts, file changes, checkpoints, branches, and PR outputs are not declared.',
|
|
173
|
+
}),
|
|
136
174
|
protocol: protocolContract({
|
|
137
175
|
metadata,
|
|
138
176
|
summary: metadata
|