@amalgm/chat 0.2.1 → 0.2.3
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/AGENTS.md +3 -0
- package/PURPOSE.md +46 -2
- package/README.md +10 -0
- package/dist/api/conversations.d.ts +5 -0
- package/dist/api/conversations.d.ts.map +1 -1
- package/dist/api/conversations.js +33 -0
- package/dist/api/conversations.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/execution/contract.d.ts +1 -1
- package/dist/execution/contract.d.ts.map +1 -1
- package/dist/execution/index.d.ts +2 -0
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +7 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +136 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/types.d.ts +17 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +2 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/sessions/chat.d.ts.map +1 -1
- package/dist/sessions/chat.js +42 -40
- package/dist/sessions/chat.js.map +1 -1
- package/docs/contracts/capabilities-and-instructions.md +103 -0
- package/docs/contracts/conversation-persistence.md +2 -0
- package/docs/contracts/input-and-execution.md +8 -3
- package/host/adapters/acp-capabilities.js +32 -0
- package/host/adapters/acp.js +8 -12
- package/host/adapters/claude.js +3 -2
- package/host/adapters/codex.js +19 -6
- package/host/adapters/cursor.js +9 -15
- package/host/adapters/input-capabilities.js +1 -0
- package/host/adapters/opencode.js +4 -3
- package/host/adapters/pi.js +3 -2
- package/host/adapters/prompt.js +2 -3
- package/host/auth.js +1 -1
- package/host/http.d.ts +4 -0
- package/host/http.js +43 -0
- package/host/index.d.ts +45 -3
- package/host/index.js +3 -0
- package/host/native-contract.js +26 -4
- package/host/native-runtime.js +8 -0
- package/host/platform-egress.js +46 -25
- package/host/title-generator.js +110 -0
- package/host/tooling/mcp-bundle.js +107 -56
- package/host/tooling/system-prompt.js +7 -4
- package/package.json +6 -1
- package/skills/chat/SKILL.md +300 -89
- package/skills/chat/references/contracts.md +73 -47
package/dist/sessions/chat.js
CHANGED
|
@@ -380,37 +380,28 @@ export class Chat {
|
|
|
380
380
|
return new ChatTurnStream(sessionId, turnId, completion, (afterSequence) => this.reconnectTurn(sessionId, turnId, afterSequence));
|
|
381
381
|
}
|
|
382
382
|
reconnectTurn(sessionId, turnId, afterSequence = 0) {
|
|
383
|
-
|
|
384
|
-
if (!record)
|
|
385
|
-
throw new SessionNotFoundError(sessionId);
|
|
386
|
-
const context = this.#turns.get(turnId) || {
|
|
387
|
-
conversationId: sessionId,
|
|
388
|
-
scope: record.scope,
|
|
389
|
-
execution: record.execution,
|
|
390
|
-
phase: 'terminal',
|
|
391
|
-
interruptAccepted: false,
|
|
392
|
-
interruptAttempt: null,
|
|
393
|
-
};
|
|
394
|
-
if (context.conversationId !== sessionId)
|
|
395
|
-
throw new SessionNotFoundError(sessionId);
|
|
396
|
-
return this.#subscribe(context, turnId, cleanCursor(afterSequence));
|
|
383
|
+
return this.#reconnectTurn(sessionId, turnId, cleanCursor(afterSequence));
|
|
397
384
|
}
|
|
398
385
|
async activeTurn(sessionId) {
|
|
399
|
-
const record = this.#
|
|
386
|
+
const record = this.#sessions.get(sessionId);
|
|
387
|
+
if (!record) {
|
|
388
|
+
await this.#storedConversation(sessionId);
|
|
389
|
+
return null;
|
|
390
|
+
}
|
|
400
391
|
if (!record.busyTurnId)
|
|
401
392
|
return null;
|
|
402
393
|
return this.#conversations.getTurn(record.scope, record.busyTurnId);
|
|
403
394
|
}
|
|
404
395
|
async latestTurn(sessionId) {
|
|
405
|
-
const
|
|
406
|
-
return this.#conversations.getLatestTurn(
|
|
396
|
+
const stored = await this.#storedConversation(sessionId);
|
|
397
|
+
return this.#conversations.getLatestTurn(stored.scope, sessionId);
|
|
407
398
|
}
|
|
408
399
|
async replayTurn(sessionId, turnId, afterSequence = 0) {
|
|
409
|
-
const
|
|
410
|
-
const turn = await this.#conversations.getTurn(
|
|
400
|
+
const stored = await this.#storedConversation(sessionId);
|
|
401
|
+
const turn = await this.#conversations.getTurn(stored.scope, turnId);
|
|
411
402
|
if (!turn || turn.conversationId !== sessionId)
|
|
412
403
|
throw new SessionNotFoundError(sessionId);
|
|
413
|
-
const updates = await this.#conversations.listTurnUpdates(
|
|
404
|
+
const updates = await this.#conversations.listTurnUpdates(stored.scope, turnId, cleanCursor(afterSequence));
|
|
414
405
|
return Object.freeze({ turn, updates });
|
|
415
406
|
}
|
|
416
407
|
interruptSession(sessionId) {
|
|
@@ -442,32 +433,29 @@ export class Chat {
|
|
|
442
433
|
return attempt;
|
|
443
434
|
}
|
|
444
435
|
async inspectSession(sessionId) {
|
|
445
|
-
|
|
446
|
-
const conversation = await this.#conversations.getConversation(record.scope, sessionId);
|
|
447
|
-
if (!conversation)
|
|
448
|
-
throw new SessionNotFoundError(sessionId);
|
|
449
|
-
return conversation;
|
|
436
|
+
return (await this.#storedConversation(sessionId)).record;
|
|
450
437
|
}
|
|
451
438
|
listConversations(options = {}) {
|
|
452
439
|
return this.#conversations.listConversations(this.#ownerUserId, options);
|
|
453
440
|
}
|
|
454
|
-
listMessages(sessionId) {
|
|
455
|
-
const
|
|
456
|
-
return this.#conversations.listMessages(
|
|
441
|
+
async listMessages(sessionId) {
|
|
442
|
+
const stored = await this.#storedConversation(sessionId);
|
|
443
|
+
return this.#conversations.listMessages(stored.scope, sessionId);
|
|
457
444
|
}
|
|
458
|
-
updateTitle(sessionId, title) {
|
|
459
|
-
const
|
|
460
|
-
return this.#conversations.updateTitle(
|
|
445
|
+
async updateTitle(sessionId, title) {
|
|
446
|
+
const stored = await this.#storedConversation(sessionId);
|
|
447
|
+
return this.#conversations.updateTitle(stored.scope, sessionId, cleanTitle(title), this.#clockIso());
|
|
461
448
|
}
|
|
462
|
-
markSeen(sessionId) {
|
|
463
|
-
const
|
|
464
|
-
return this.#conversations.markSeen(
|
|
449
|
+
async markSeen(sessionId) {
|
|
450
|
+
const stored = await this.#storedConversation(sessionId);
|
|
451
|
+
return this.#conversations.markSeen(stored.scope, sessionId, this.#clockIso());
|
|
465
452
|
}
|
|
466
453
|
async archiveSession(sessionId) {
|
|
467
|
-
const record = this.#
|
|
468
|
-
if (record
|
|
454
|
+
const record = this.#sessions.get(sessionId);
|
|
455
|
+
if (record?.busyTurnId)
|
|
469
456
|
throw new SessionBusyError(sessionId);
|
|
470
|
-
|
|
457
|
+
const stored = await this.#storedConversation(sessionId);
|
|
458
|
+
return this.#conversations.archiveConversation(stored.scope, sessionId, this.#clockIso());
|
|
471
459
|
}
|
|
472
460
|
recoverInterruptedTurns() {
|
|
473
461
|
return this.#conversations.recoverInterrupted(this.#ownerUserId, this.#clockIso());
|
|
@@ -634,7 +622,14 @@ export class Chat {
|
|
|
634
622
|
const kind = update['sessionUpdate'];
|
|
635
623
|
return kind === 'agent_message_chunk' || kind === 'agent_thought_chunk';
|
|
636
624
|
}
|
|
637
|
-
async *#
|
|
625
|
+
async *#reconnectTurn(sessionId, turnId, afterSequence) {
|
|
626
|
+
const stored = await this.#storedConversation(sessionId);
|
|
627
|
+
const turn = await this.#conversations.getTurn(stored.scope, turnId);
|
|
628
|
+
if (!turn || turn.conversationId !== sessionId)
|
|
629
|
+
throw new SessionNotFoundError(sessionId);
|
|
630
|
+
yield* this.#subscribe(stored.scope, turnId, afterSequence);
|
|
631
|
+
}
|
|
632
|
+
async *#subscribe(scope, turnId, afterSequence) {
|
|
638
633
|
const buffer = new LiveTurnBuffer(turnId, this.#subscriberBufferSize);
|
|
639
634
|
const subscribers = this.#subscribers.get(turnId) || new Set();
|
|
640
635
|
subscribers.add(buffer);
|
|
@@ -642,7 +637,7 @@ export class Chat {
|
|
|
642
637
|
let cursor = afterSequence;
|
|
643
638
|
try {
|
|
644
639
|
while (true) {
|
|
645
|
-
const backlog = await this.#conversations.listTurnUpdates(
|
|
640
|
+
const backlog = await this.#conversations.listTurnUpdates(scope, turnId, cursor);
|
|
646
641
|
for (const stored of backlog)
|
|
647
642
|
buffer.offer(stored, cursor);
|
|
648
643
|
let next = buffer.takeAfter(cursor);
|
|
@@ -653,7 +648,7 @@ export class Chat {
|
|
|
653
648
|
}
|
|
654
649
|
if (buffer.failure)
|
|
655
650
|
throw buffer.failure;
|
|
656
|
-
const terminal = buffer.terminal || await this.#conversations.getTurn(
|
|
651
|
+
const terminal = buffer.terminal || await this.#conversations.getTurn(scope, turnId);
|
|
657
652
|
if (terminal && terminal.status !== 'running') {
|
|
658
653
|
if (terminal.status === 'failed' || terminal.status === 'interrupted')
|
|
659
654
|
throw new TurnStreamError(terminal);
|
|
@@ -686,6 +681,13 @@ export class Chat {
|
|
|
686
681
|
agentInstallationId: execution.contract.agent.installationId,
|
|
687
682
|
});
|
|
688
683
|
}
|
|
684
|
+
async #storedConversation(sessionId) {
|
|
685
|
+
const id = nonEmpty(sessionId, 'sessionId');
|
|
686
|
+
const found = await this.#conversations.getConversationForOwner(this.#ownerUserId, id, true);
|
|
687
|
+
if (!found)
|
|
688
|
+
throw new SessionNotFoundError(id);
|
|
689
|
+
return found;
|
|
690
|
+
}
|
|
689
691
|
#assertInstallation(scope, execution, sessionId) {
|
|
690
692
|
if (scope.agentInstallationId !== execution.contract.agent.installationId) {
|
|
691
693
|
throw new SessionAgentMismatchError(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/sessions/chat.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AAWxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAgI/D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,GAAG,mBAAmB,CAAC;IAEpC,YAAY,SAAiB;QAC3B,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,wBAAwB,CAAC;IAEzC,YAAY,SAAiB;QAC3B,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,GAAG,cAAc,CAAC;IAE/B,YAAY,SAAiB;QAC3B,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,wBAAwB,CAAC;IAEzC,YAAY,SAAiB;QAC3B,KAAK,CAAC,sDAAsD,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IACb,IAAI,CAAmB;IAEhC,YAAY,IAAsB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QACxG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,IAAI,GAAG,yBAAyB,CAAC;IAE1C,YAAY,MAAc;QACxB,KAAK,CAAC,oDAAoD,MAAM,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACzC,IAAI,GAAG,uBAAuB,CAAC;IAExC,YAAY,SAAiB;QAC3B,KAAK,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,cAAc;IACT,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,SAAS,GAA4B,IAAI,CAAC;IAC1C,QAAQ,GAAiB,IAAI,CAAC;IAC9B,KAAK,GAAwB,IAAI,CAAC;IAElC,YAAY,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAwB,EAAE,aAAqB;QACnD,IAAI,MAAM,CAAC,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC9D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,IAAsB;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,KAAY;QACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,aAAqB;QAC7B,IAAI,QAAQ,GAA4B,IAAI,CAAC;QAC7C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ,IAAI,aAAa,EAAE,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ;gBAAE,QAAQ,GAAG,MAAM,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACxF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,EAAE,EAAE,CAAC;IACX,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IAC3G,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,OAAO,KAAK,IAAI,aAAa,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAI,GAAG,aAAa;IACvD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAI,KAAoC,CAAC,IAAI,CAAC;QAC3D,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC7D,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB,EAAE,MAAwB;IACpE,MAAM,MAAM,GAAG,MAA4C,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC,CAAC,MAAM,CAAC,OAAO,CAA4B;QAC5C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAA4B;QAC3C,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE;YACL,GAAG,IAAI;YACP,MAAM,EAAE;gBACN,GAAG,QAAQ;gBACX,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;SACF;KAC0B,CAAC;AAChC,CAAC;AAED,MAAM,OAAO,cAAc;IAChB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,UAAU,CAA4B;IACtC,UAAU,CAA0D;IAE7E,YACE,SAAiB,EACjB,MAAc,EACd,UAAqC,EACrC,SAAkE;QAElE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,aAAa,GAAG,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACb,EAAE,CAAS;IACX,KAAK,CAAgC;IAE9C,YAAY,IAAmC,EAAE,EAAU;QACzD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,IAAI,CAAC,OAAoB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CAAC,MAAc,EAAE,UAA4B,EAAE;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IACN,QAAQ,CAA2C;IACnD,YAAY,CAAS;IACrB,cAAc,CAAwB;IACtC,KAAK,CAAiB;IACtB,SAAS,CAAe;IACxB,UAAU,CAAgB;IAC1B,WAAW,CAAkC;IAC7C,qBAAqB,CAAS;IAC9B,aAAa,CAAuD;IACpE,SAAS,GAAG,IAAI,GAAG,EAAkD,CAAC;IACtE,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IACjD,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE/D,YAAY,OAA6C;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,sBAAsB,EAAW,CAAC;QAC/E,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACxE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAA8B,CAAC,CAAC;YACjE,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,KAAwB;QACzD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,QAAQ,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;YAC3C,GAAG,KAAK;YACR,EAAE,EAAE,SAAS;YACb,eAAe,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU;YACpD,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;YAC7C,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI;YAC1C,uBAAuB,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU;YACtD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;YAC5B,EAAE,EAAE,SAAS;YACb,KAAK;YACL,cAAc;YACd,SAAS;YACT,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACvE,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa;YAAE,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpF,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;YACvF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS;YACT,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI;YAC1C,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;YACpC,EAAE,EAAE,OAAO,CAAC,SAAS;YACrB,KAAK;YACL,cAAc;YACd,SAAS;YACT,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,OAAO,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC1F,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7F,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,OAAoB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS;YAC/C,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS;YACvD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,KAAK,SAAS;YACjE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;YACd,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAClC,GAAG,MAAM,CAAC,KAAK;YACf,cAAc,EAAE,SAAS;YACzB,MAAM;YACN,aAAa;YACb,MAAM;YACN,SAAS,EAAE,SAAS,CAAC,QAAQ;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;YACtB,cAAc,EAAE,SAAS;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS;YACT,KAAK,EAAE,SAAS;YAChB,iBAAiB,EAAE,KAAK;YACxB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACzF,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChC,OAAO,IAAI,cAAc,CACvB,SAAS,EACT,MAAM,EACN,UAAU,EACV,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CACxE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,MAAc,EAAE,aAAa,GAAG,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;YACzC,cAAc,EAAE,SAAS;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,UAAmB;YAC1B,iBAAiB,EAAE,KAAK;YACxB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QACF,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc,EAAE,aAAa,GAAG,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CACvD,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,WAAW,CAAC,aAAa,CAAC,CAC3B,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,gBAAgB,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa;YAAE,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC1D,SAAS;YACT,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,cAAc;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACZ,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAChC,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxF,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,UAAoC,EAAE;QACtD,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,KAAa;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,UAAU;YAAE,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,UAAU;gBAAE,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAA8C,EAC9C,MAAc,EACd,kBAA0B,EAC1B,MAAmB,EACnB,SAAqC;QAErC,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;QAC9C,IAAI,MAAM,GAA4C,WAAW,CAAC;QAClE,IAAI,OAAO,GAA6C,IAAI,CAAC;QAC7D,IAAI,kBAAkB,GAAmB,IAAI,CAAC;QAC9C,IAAI,aAAa,GAAY,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACxC,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC9B,MAAM;gBACN,SAAS;gBACT,iBAAiB,EAAE,MAAM,CAAC,SAAS;aACpC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;oBAChE,GAAG,MAAM,CAAC,KAAK;oBACf,cAAc,EAAE,MAAM,CAAC,EAAE;oBACzB,MAAM;oBACN,OAAO;iBACR,CAAC,CAAC;gBACH,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,kBAAkB,GAAG,cAAc,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;oBAC1E,SAAS,EAAE,MAAM,CAAC,EAAE;oBACpB,OAAO,EAAE,MAAM,CAAC,cAAc;oBAC9B,SAAS;iBACV,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,MAAM,CAAC;gBACP,kEAAkE;gBAClE,mEAAmE;gBACnE,kBAAkB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;YAC1B,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBAAC,MAAM,OAAO,CAAC,gBAAgB,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;YAC/B,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;aAAM,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,GAAG,QAAQ,CAAC;YAClB,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC9C,GAAG,MAAM,CAAC,KAAK;gBACf,cAAc,EAAE,MAAM,CAAC,EAAE;gBACzB,MAAM;gBACN,kBAAkB;gBAClB,MAAM;gBACN,cAAc,EAAE,qBAAqB,CAAC,UAAU,EAAE,MAAM,KAAK,QAAQ,CAAC;gBACtE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;gBACzC,KAAK,EAAE,OAAO;gBACd,kBAAkB,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvD,cAAc,EAAE,MAAM,CAAC,EAAE;oBACzB,iBAAiB,EAAE,SAAS,CAAC,QAAQ;oBACrC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;oBAC7C,UAAU,EAAE,kBAAkB;oBAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;iBAC5B;gBACD,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,QAAQ;gBAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,eAAe;gBAAE,MAAM,KAAK,CAAC;YAClD,MAAM,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAChD,MAAM,gBAAgB,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;YACxC,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;gBAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAoC;QAIlD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YAClC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,CAAC;gBACZ,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC,CAAC;YACN,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,GAAyC,IAAI,CAAC;YACtD,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC,CAAC;iBAC9D,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,MAAM;gBACnC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACrB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;oBACnB,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;oBACnB,MAAM;gBACR,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACvE,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;YACZ,IAAI,GAAG,IAAI,IAAI,MAAM,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB;QACnC,MAAM,IAAI,GAAI,MAA6C,CAAC,eAAe,CAAC,CAAC;QAC7E,OAAO,IAAI,KAAK,qBAAqB,IAAI,IAAI,KAAK,qBAAqB,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,CAAC,UAAU,CAAC,OAA6B,EAAE,MAAc,EAAE,aAAqB;QACpF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QAC/E,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzF,KAAK,MAAM,MAAM,IAAI,OAAO;oBAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC3D,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACvB,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,MAAM,CAAC,OAAO,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC7F,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa;wBAAE,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC3G,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,MAAwB;QACtD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,iBAAiB,CAAC,MAAc,EAAE,IAAsB;QACtD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,KAAY;QAC3C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,SAAqC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,mBAAmB,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CACjB,KAAwB,EACxB,SAAqC,EACrC,SAAiB;QAEjB,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC1E,MAAM,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/sessions/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Capabilities and instructions
|
|
2
|
+
|
|
3
|
+
This contract defines the two session inputs that must remain equivalent when
|
|
4
|
+
an Amalgm conversation switches among native and ACP agents: callable
|
|
5
|
+
capabilities and system instructions.
|
|
6
|
+
|
|
7
|
+
## Purpose
|
|
8
|
+
|
|
9
|
+
A host should prepare one agent session without knowing which product supplied
|
|
10
|
+
a capability or teaching each caller provider-specific system-prompt fields.
|
|
11
|
+
Tools, Agents, Chat, and third-party integrations therefore enter through the
|
|
12
|
+
same capability boundary, while every instruction source is composed once and
|
|
13
|
+
applied at its real privilege level.
|
|
14
|
+
|
|
15
|
+
## Capability injection
|
|
16
|
+
|
|
17
|
+
ACP v1 standardizes tool injection as `mcpServers: McpServer[]` on
|
|
18
|
+
`session/new`, `session/load`, and `session/resume`. Chat imports the official
|
|
19
|
+
`McpServer` union from `@agentclientprotocol/sdk`; it does not maintain an
|
|
20
|
+
Amalgm copy.
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
immutable Toolbox selection
|
|
24
|
+
-> host resolves official ACP McpServer[]
|
|
25
|
+
-> prepared Chat binding
|
|
26
|
+
-> native adapter transport projection
|
|
27
|
+
-> agent session
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The selected list is complete. Chat adds no ambient server, and an adapter may
|
|
31
|
+
not discover, drop, rename, or broaden it silently. A transport the selected
|
|
32
|
+
agent did not advertise is a typed preparation/session-admission error.
|
|
33
|
+
Chat currently admits ACP's stable stdio, HTTP, and SSE variants. The
|
|
34
|
+
experimental ACP-channel transport is rejected until Chat owns the matching
|
|
35
|
+
`mcp/connect`, `mcp/message`, and `mcp/disconnect` lifecycle.
|
|
36
|
+
|
|
37
|
+
An Amalgm product is a platform capability because its MCP server is supplied
|
|
38
|
+
by the authenticated host and its actions are selected from Toolbox. It is not
|
|
39
|
+
a new protocol primitive. The Tools, Agents, and Chat MCP servers use the same
|
|
40
|
+
ACP injection path as any other selected server. Product identity and display
|
|
41
|
+
metadata may use namespaced `_meta`; metadata never grants authority.
|
|
42
|
+
|
|
43
|
+
SDKs own the behavior behind those servers. MCP, HTTP API, CLI, and Skill
|
|
44
|
+
surfaces are adapters over the corresponding public SDK and may not grow a
|
|
45
|
+
second implementation.
|
|
46
|
+
|
|
47
|
+
## Instruction injection
|
|
48
|
+
|
|
49
|
+
Instruction sources resolve during Chat preparation into one immutable bundle:
|
|
50
|
+
|
|
51
|
+
1. machine-level user instructions;
|
|
52
|
+
2. prepared project/workspace context;
|
|
53
|
+
3. the exact immutable Agent revision instructions.
|
|
54
|
+
|
|
55
|
+
The resulting text and its digest are host-only prepared facts. Starting,
|
|
56
|
+
resuming, and prompting consume them without rereading files or rediscovering
|
|
57
|
+
an Agent revision. Native adapters translate the exact text into their genuine
|
|
58
|
+
system or developer-instruction field.
|
|
59
|
+
|
|
60
|
+
Stable ACP v1 deliberately has no arbitrary system-prompt field. Amalgm uses
|
|
61
|
+
ACP's official extensibility mechanism for agents that opt in:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"agentCapabilities": {
|
|
66
|
+
"_meta": {
|
|
67
|
+
"amalgm.dev": { "sessionInstructions": true }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
For an advertising agent, Chat attaches the prepared bundle to the lifecycle
|
|
74
|
+
request (`session/new`, `session/load`, or `session/resume`):
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"_meta": {
|
|
79
|
+
"amalgm.dev": {
|
|
80
|
+
"sessionInstructions": {
|
|
81
|
+
"revisionId": "sha256 digest",
|
|
82
|
+
"text": "prepared instructions"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
An ACP agent that does not advertise the extension is admitted only when the
|
|
90
|
+
prepared instruction text is empty. Instructions are never represented as a
|
|
91
|
+
text block in `session/prompt`; doing so would turn privileged configuration
|
|
92
|
+
into user-authored conversation content and corrupt transcript semantics.
|
|
93
|
+
|
|
94
|
+
## Predictable behavior
|
|
95
|
+
|
|
96
|
+
Changing a Toolbox selection or immutable Agent revision creates a different
|
|
97
|
+
prepared binding. Machine and project instruction changes must likewise enter
|
|
98
|
+
preparation through a new execution revision before they affect a new session;
|
|
99
|
+
wiring that source revision through the control plane remains follow-up work.
|
|
100
|
+
An already-prepared session retains the exact MCP servers and instructions it
|
|
101
|
+
was given. Reconnect or resume reapplies the same lifecycle inputs. Switching
|
|
102
|
+
adapters can change only the native projection, never the selected capability
|
|
103
|
+
set, instruction text, ACP output grammar, or SDK ownership boundary.
|
|
@@ -42,6 +42,8 @@ database.
|
|
|
42
42
|
that created them.
|
|
43
43
|
11. SQLite WAL is the local working authority. Synchronization, when added,
|
|
44
44
|
moves logical records and immutable batches, never a live SQLite file.
|
|
45
|
+
12. Catalog, history, title, seen-state, replay, and archival read the durable
|
|
46
|
+
store directly. They never start or resume a provider session.
|
|
45
47
|
|
|
46
48
|
The canonical application projection uses camelCase `ConversationRecord`,
|
|
47
49
|
`ConversationMessage`, and `ConversationTurn` values from this package.
|
|
@@ -34,9 +34,10 @@ discovery and resolution; start and send consume its result.
|
|
|
34
34
|
defaults or fallback auth modes.
|
|
35
35
|
4. A model is identified by `(agent revision, provider id, model id)`. Model
|
|
36
36
|
settings are ACP session-config selections scoped inside that model choice.
|
|
37
|
-
5. Ordinary tools and MCP tools are selected through one immutable
|
|
38
|
-
revision. `amalgm-tools` resolves that
|
|
39
|
-
|
|
37
|
+
5. Ordinary tools and MCP tools are selected through one immutable deployment-
|
|
38
|
+
head revision, never a local SQLite sequence. `amalgm-tools` resolves that
|
|
39
|
+
exact revision to the complete official ACP `McpServer[]` configuration
|
|
40
|
+
during preparation; Chat adds no ambient server or latest-version fallback.
|
|
40
41
|
6. Secrets are not execution-contract values. Auth names an opaque binding; the
|
|
41
42
|
authorized host resolves secrets into the opaque prepared binding.
|
|
42
43
|
7. A cwd is an absolute, already-materialized path on the selected computer. A
|
|
@@ -57,6 +58,10 @@ discovery and resolution; start and send consume its result.
|
|
|
57
58
|
before prompting. No adapter may silently ignore an attachment, auth mode,
|
|
58
59
|
tool, permission mode, model setting, provider/model choice, cwd, agent
|
|
59
60
|
revision, or computer placement.
|
|
61
|
+
13. Machine, project, and exact Agent-revision instructions compose once during
|
|
62
|
+
preparation. They are not prompt parts. Native adapters use a real
|
|
63
|
+
system/developer channel; ACP agents must advertise the `amalgm.dev`
|
|
64
|
+
session-instructions extension.
|
|
60
65
|
|
|
61
66
|
## Public path
|
|
62
67
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { UnsupportedExecutionInputError } from './input-capabilities.js';
|
|
2
2
|
|
|
3
|
+
export const AMALGM_ACP_META_KEY = 'amalgm.dev';
|
|
4
|
+
|
|
3
5
|
/** Validate optional ACP inputs against the capabilities negotiated at initialize. */
|
|
4
6
|
export function assertAcpMcpCapabilities(adapterId, capabilities, servers) {
|
|
5
7
|
const mcp = capabilities?.mcpCapabilities || {};
|
|
@@ -28,3 +30,33 @@ export function assertAcpPromptCapabilities(adapterId, capabilities, prompt) {
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* ACP v1 has no system-prompt field. Apply instructions only through the
|
|
36
|
+
* advertised Amalgm lifecycle extension; never turn them into prompt content.
|
|
37
|
+
*/
|
|
38
|
+
export function acpSessionParams(adapterId, capabilities, contract, mcpServers) {
|
|
39
|
+
const instructions = contract?.instructions || { text: '', revisionId: null };
|
|
40
|
+
const text = String(instructions.text || '').trim();
|
|
41
|
+
if (!text) return { cwd: contract.cwd, mcpServers };
|
|
42
|
+
const extension = capabilities?._meta?.[AMALGM_ACP_META_KEY];
|
|
43
|
+
if (extension?.sessionInstructions !== true) {
|
|
44
|
+
throw new UnsupportedExecutionInputError(
|
|
45
|
+
adapterId,
|
|
46
|
+
'instructions',
|
|
47
|
+
`agent does not advertise the ACP ${AMALGM_ACP_META_KEY} sessionInstructions extension`,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
cwd: contract.cwd,
|
|
52
|
+
mcpServers,
|
|
53
|
+
_meta: {
|
|
54
|
+
[AMALGM_ACP_META_KEY]: {
|
|
55
|
+
sessionInstructions: {
|
|
56
|
+
revisionId: instructions.revisionId,
|
|
57
|
+
text,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
package/host/adapters/acp.js
CHANGED
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
import { PROTOCOL_VERSION } from '@agentclientprotocol/sdk';
|
|
4
4
|
import { toAcpMcpServers } from '../tooling/mcp-bundle.js';
|
|
5
5
|
import { prepareHarnessRuntime } from '../tooling/runtime-home.js';
|
|
6
|
-
import { composeSystemPrompt } from '../tooling/system-prompt.js';
|
|
7
6
|
import { requestPermission } from '../permissions.js';
|
|
8
7
|
import { AcpClient } from './acp-client.js';
|
|
9
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
acpSessionParams,
|
|
10
|
+
assertAcpMcpCapabilities,
|
|
11
|
+
assertAcpPromptCapabilities,
|
|
12
|
+
} from './acp-capabilities.js';
|
|
10
13
|
import { nativeInputCapabilities, UnsupportedExecutionInputError } from './input-capabilities.js';
|
|
11
14
|
import { acpPromptParts } from './prompt.js';
|
|
12
15
|
|
|
@@ -125,6 +128,7 @@ export class AcpAdapter {
|
|
|
125
128
|
authModes: ['platform', 'subscription', 'byok'],
|
|
126
129
|
modelSettings: 'negotiated',
|
|
127
130
|
tools: true,
|
|
131
|
+
instructions: 'acp_extension',
|
|
128
132
|
});
|
|
129
133
|
}
|
|
130
134
|
|
|
@@ -149,7 +153,6 @@ export class AcpAdapter {
|
|
|
149
153
|
client,
|
|
150
154
|
capabilities: {},
|
|
151
155
|
permissionMode: contract.permissionMode,
|
|
152
|
-
needsSystemPrompt: false,
|
|
153
156
|
activePrompt: false,
|
|
154
157
|
};
|
|
155
158
|
client.onRequest((method, params) => this.handleRequest(session, method, params));
|
|
@@ -170,7 +173,7 @@ export class AcpAdapter {
|
|
|
170
173
|
|
|
171
174
|
const mcpServers = toAcpMcpServers(contract);
|
|
172
175
|
assertAcpMcpCapabilities('acp', session.capabilities, mcpServers);
|
|
173
|
-
const sessionParams =
|
|
176
|
+
const sessionParams = acpSessionParams('acp', session.capabilities, contract, mcpServers);
|
|
174
177
|
let response;
|
|
175
178
|
if (session.providerSessionId) {
|
|
176
179
|
if (session.capabilities.loadSession === true) {
|
|
@@ -189,7 +192,6 @@ export class AcpAdapter {
|
|
|
189
192
|
} else {
|
|
190
193
|
response = await client.request('session/new', sessionParams, 600000);
|
|
191
194
|
session.providerSessionId = response?.sessionId || null;
|
|
192
|
-
session.needsSystemPrompt = true;
|
|
193
195
|
}
|
|
194
196
|
if (!session.providerSessionId) throw new Error('ACP agent did not return a sessionId');
|
|
195
197
|
await applyConfiguration(client, session.providerSessionId, response, contract, launch);
|
|
@@ -244,16 +246,10 @@ export class AcpAdapter {
|
|
|
244
246
|
if (message.params?.update) queue.push(message.params.update);
|
|
245
247
|
wakeLoop();
|
|
246
248
|
});
|
|
247
|
-
let preamble = '';
|
|
248
|
-
if (session.needsSystemPrompt) {
|
|
249
|
-
const systemPrompt = composeSystemPrompt(contract);
|
|
250
|
-
if (systemPrompt) preamble = `<system-instructions>\n${systemPrompt}\n</system-instructions>`;
|
|
251
|
-
session.needsSystemPrompt = false;
|
|
252
|
-
}
|
|
253
249
|
session.activePrompt = true;
|
|
254
250
|
session.client.request('session/prompt', {
|
|
255
251
|
sessionId: session.providerSessionId,
|
|
256
|
-
prompt: acpPromptParts(prompt
|
|
252
|
+
prompt: acpPromptParts(prompt),
|
|
257
253
|
}, 0).then(() => {
|
|
258
254
|
finished = true;
|
|
259
255
|
wakeLoop();
|
package/host/adapters/claude.js
CHANGED
|
@@ -21,7 +21,7 @@ import { toClaudeMcpServers } from '../tooling/mcp-bundle.js';
|
|
|
21
21
|
import { bundledClaudeBinary } from '../tooling/native-binaries.js';
|
|
22
22
|
import { importPackage } from '../tooling/package-import.js';
|
|
23
23
|
import { prepareHarnessRuntime } from '../tooling/runtime-home.js';
|
|
24
|
-
import {
|
|
24
|
+
import { preparedSystemPrompt } from '../tooling/system-prompt.js';
|
|
25
25
|
import { allowed, requestPermission } from '../permissions.js';
|
|
26
26
|
import {
|
|
27
27
|
COMMON_REASONING_SETTINGS,
|
|
@@ -55,6 +55,7 @@ class ClaudeAdapter {
|
|
|
55
55
|
authModes: ['platform', 'subscription', 'byok'],
|
|
56
56
|
modelSettings: [...COMMON_REASONING_SETTINGS, ...COMMON_SPEED_SETTINGS],
|
|
57
57
|
tools: true,
|
|
58
|
+
instructions: 'native',
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -70,7 +71,7 @@ class ClaudeAdapter {
|
|
|
70
71
|
|
|
71
72
|
options(contract, extra = {}) {
|
|
72
73
|
const runtime = prepareHarnessRuntime(contract);
|
|
73
|
-
const systemPrompt =
|
|
74
|
+
const systemPrompt = preparedSystemPrompt(contract);
|
|
74
75
|
const pathToClaudeCodeExecutable = process.env.CLAUDE_CODE_BINARY || bundledClaudeBinary();
|
|
75
76
|
const settings = {
|
|
76
77
|
...this.renderers.toClaudeSettings(contract.agentConfig),
|
package/host/adapters/codex.js
CHANGED
|
@@ -17,11 +17,11 @@ import path from 'node:path';
|
|
|
17
17
|
import { createEventConstructors } from '../../dist/events/index.js';
|
|
18
18
|
import { codexErrorMessage, createCodexNormalizer } from '../../dist/normalizers/codex.js';
|
|
19
19
|
import { recordNativeEvent } from '../recorder.js';
|
|
20
|
-
import { relayedMcpServers, toCodexMcpToml } from '../tooling/mcp-bundle.js';
|
|
20
|
+
import { codexMcpSectionName, relayedMcpServers, toCodexMcpToml } from '../tooling/mcp-bundle.js';
|
|
21
21
|
import { bundledCodexBinary, bundledCodexPathDirs, executableExists, findOnPath } from '../tooling/native-binaries.js';
|
|
22
22
|
import { syncCodexProviderAuth } from '../tooling/native-config.js';
|
|
23
23
|
import { prepareHarnessRuntime } from '../tooling/runtime-home.js';
|
|
24
|
-
import {
|
|
24
|
+
import { preparedSystemPrompt } from '../tooling/system-prompt.js';
|
|
25
25
|
import { requestPermission } from '../permissions.js';
|
|
26
26
|
import {
|
|
27
27
|
COMMON_REASONING_SETTINGS,
|
|
@@ -447,7 +447,7 @@ function generatedCodexHookTrust(contract, renderers = defaultRenderers) {
|
|
|
447
447
|
}
|
|
448
448
|
|
|
449
449
|
function generatedMcpSectionNames(contract) {
|
|
450
|
-
return relayedMcpServers(contract).map((server) =>
|
|
450
|
+
return relayedMcpServers(contract).map((server) => codexMcpSectionName(server.name));
|
|
451
451
|
}
|
|
452
452
|
|
|
453
453
|
function buildCodexConfig(contract, existingConfig, syncInfo, renderers = defaultRenderers) {
|
|
@@ -524,6 +524,7 @@ class CodexAdapter {
|
|
|
524
524
|
authModes: ['platform', 'subscription', 'byok'],
|
|
525
525
|
modelSettings: [...COMMON_REASONING_SETTINGS, ...COMMON_SPEED_SETTINGS],
|
|
526
526
|
tools: true,
|
|
527
|
+
instructions: 'native',
|
|
527
528
|
});
|
|
528
529
|
}
|
|
529
530
|
|
|
@@ -541,7 +542,7 @@ class CodexAdapter {
|
|
|
541
542
|
sandbox: fullAccess ? 'danger-full-access' : 'workspace-write',
|
|
542
543
|
modelProvider: contract.authMethod === 'amalgm' ? 'amalgm' : 'openai',
|
|
543
544
|
serviceTier: serviceTierForContract(contract),
|
|
544
|
-
developerInstructions:
|
|
545
|
+
developerInstructions: preparedSystemPrompt(contract) || null,
|
|
545
546
|
persistExtendedHistory: true,
|
|
546
547
|
};
|
|
547
548
|
const session = {
|
|
@@ -571,6 +572,7 @@ class CodexAdapter {
|
|
|
571
572
|
'item/commandExecution/requestApproval',
|
|
572
573
|
'item/fileChange/requestApproval',
|
|
573
574
|
'item/permissions/requestApproval',
|
|
575
|
+
'mcpServer/elicitation/request',
|
|
574
576
|
'execCommandApproval',
|
|
575
577
|
'applyPatchApproval',
|
|
576
578
|
]);
|
|
@@ -580,8 +582,12 @@ class CodexAdapter {
|
|
|
580
582
|
: await requestPermission(this.permissionPort, {
|
|
581
583
|
adapterId: 'codex',
|
|
582
584
|
providerSessionId: session.providerSessionId,
|
|
583
|
-
kind: method
|
|
584
|
-
|
|
585
|
+
kind: method === 'mcpServer/elicitation/request'
|
|
586
|
+
? 'mcp_tool'
|
|
587
|
+
: method.includes('fileChange') || method === 'applyPatchApproval'
|
|
588
|
+
? 'file_change'
|
|
589
|
+
: 'command',
|
|
590
|
+
title: params.message || params.reason || params.command || 'Codex requests permission',
|
|
585
591
|
input: params,
|
|
586
592
|
});
|
|
587
593
|
const allow = decision.outcome === 'allow_once' || decision.outcome === 'allow_always';
|
|
@@ -603,6 +609,13 @@ class CodexAdapter {
|
|
|
603
609
|
scope: always ? 'session' : 'turn',
|
|
604
610
|
};
|
|
605
611
|
}
|
|
612
|
+
if (method === 'mcpServer/elicitation/request') {
|
|
613
|
+
return {
|
|
614
|
+
action: allow ? 'accept' : decision.outcome === 'cancel' ? 'cancel' : 'decline',
|
|
615
|
+
content: allow ? decision.updatedInput || null : null,
|
|
616
|
+
_meta: null,
|
|
617
|
+
};
|
|
618
|
+
}
|
|
606
619
|
return {
|
|
607
620
|
decision: allow
|
|
608
621
|
? (always ? 'approved_for_session' : 'approved')
|