mirror of
https://github.com/apache/maka.git
synced 2026-10-28 08:54:38 +08:00
Let Maka Desktop run external agents through the plugin executor seam, with Antigravity ACP as the first integration (#5103 PR 2). The ACP runtime plugin owns process lifecycle, retained sessions, permission/question bridging, cancellation, and event projection; the Antigravity adapter owns variant identity and model grouping; the Host coordinates catalog discovery and staged plugin bundles; Desktop gets a generic executor/model picker. Process loss degrades to readable history-only sessions; restoration is PR 3, modes are PR 4. New protocol surface (plugin.executor.query, session executor fields, executorConfig) is covered by compatibility epoch 181; mismatched peers are rejected at handshake. Generated-by: OpenAI Codex
40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
/*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
import { resolve } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { build } from 'esbuild';
|
|
|
|
const repoRoot = fileURLToPath(new URL('../../../', import.meta.url));
|
|
const packages = ['acp-executor-plugin', 'antigravity-acp-plugin'];
|
|
|
|
/** Build the exact entrypoints resolved and staged by the Host. */
|
|
export async function buildExecutorPlugins({ outputRoot = repoRoot } = {}) {
|
|
await Promise.all(packages.map((name) => build({
|
|
absWorkingDir: repoRoot,
|
|
entryPoints: [`packages/${name}/src/index.ts`],
|
|
outfile: resolve(outputRoot, `packages/${name}/dist/plugin.mjs`),
|
|
bundle: true,
|
|
platform: 'node',
|
|
format: 'esm',
|
|
target: 'node22',
|
|
logLevel: 'warning',
|
|
})));
|
|
}
|