@jini-ai/agent-plugins 0.6.12 → 0.6.15-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/admin-surfaces/action-schema.d.ts +2 -55
- package/dist/admin-surfaces/action-schema.d.ts.map +1 -1
- package/dist/admin-surfaces/action-schema.js +2 -166
- package/dist/admin-surfaces/action-schema.js.map +1 -1
- package/dist/admin-surfaces/action-tools.d.ts +6 -0
- package/dist/admin-surfaces/action-tools.d.ts.map +1 -1
- package/dist/admin-surfaces/action-tools.js +4 -2
- package/dist/admin-surfaces/action-tools.js.map +1 -1
- package/dist/admin-surfaces/surface-capabilities.d.ts +8 -4
- package/dist/admin-surfaces/surface-capabilities.d.ts.map +1 -1
- package/dist/admin-surfaces/surface-capabilities.js +8 -6
- package/dist/admin-surfaces/surface-capabilities.js.map +1 -1
- package/dist/admin-surfaces/surface-handlers.d.ts +6 -2
- package/dist/admin-surfaces/surface-handlers.d.ts.map +1 -1
- package/dist/admin-surfaces/surface-handlers.js +8 -16
- package/dist/admin-surfaces/surface-handlers.js.map +1 -1
- package/dist/contracts/admin-surface-action-schema.d.ts +56 -0
- package/dist/contracts/admin-surface-action-schema.d.ts.map +1 -0
- package/dist/contracts/admin-surface-action-schema.js +167 -0
- package/dist/contracts/admin-surface-action-schema.js.map +1 -0
- package/dist/lifecycle/activation.d.ts +7 -0
- package/dist/lifecycle/activation.d.ts.map +1 -1
- package/dist/lifecycle/activation.js +29 -1
- package/dist/lifecycle/activation.js.map +1 -1
- package/dist/lifecycle/automatic-use.d.ts +8 -4
- package/dist/lifecycle/automatic-use.d.ts.map +1 -1
- package/dist/lifecycle/automatic-use.js +46 -16
- package/dist/lifecycle/automatic-use.js.map +1 -1
- package/dist/lifecycle/bundled-source-archive.d.ts +25 -2
- package/dist/lifecycle/bundled-source-archive.d.ts.map +1 -1
- package/dist/lifecycle/bundled-source-archive.js +165 -15
- package/dist/lifecycle/bundled-source-archive.js.map +1 -1
- package/dist/lifecycle/exports.d.ts +51 -0
- package/dist/lifecycle/exports.d.ts.map +1 -0
- package/dist/lifecycle/exports.js +96 -0
- package/dist/lifecycle/exports.js.map +1 -0
- package/dist/lifecycle/index.d.ts +18 -11
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +4 -2
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/installed-package-index.d.ts.map +1 -1
- package/dist/lifecycle/installed-package-index.js +6 -2
- package/dist/lifecycle/installed-package-index.js.map +1 -1
- package/dist/lifecycle/manifest.d.ts +3 -1
- package/dist/lifecycle/manifest.d.ts.map +1 -1
- package/dist/lifecycle/manifest.js +7 -0
- package/dist/lifecycle/manifest.js.map +1 -1
- package/dist/lifecycle/ports.d.ts +13 -3
- package/dist/lifecycle/ports.d.ts.map +1 -1
- package/dist/lifecycle/resolve-agent-plugin-refs.d.ts +11 -0
- package/dist/lifecycle/resolve-agent-plugin-refs.d.ts.map +1 -1
- package/dist/lifecycle/resolve-agent-plugin-refs.js +38 -16
- package/dist/lifecycle/resolve-agent-plugin-refs.js.map +1 -1
- package/dist/lifecycle/search-projection.d.ts +34 -0
- package/dist/lifecycle/search-projection.d.ts.map +1 -0
- package/dist/lifecycle/search-projection.js +53 -0
- package/dist/lifecycle/search-projection.js.map +1 -0
- package/dist/lifecycle/search.js.map +1 -1
- package/dist/lifecycle/seed-bundled.d.ts +10 -1
- package/dist/lifecycle/seed-bundled.d.ts.map +1 -1
- package/dist/lifecycle/seed-bundled.js +7 -5
- package/dist/lifecycle/seed-bundled.js.map +1 -1
- package/dist/lifecycle/set-enabled.d.ts +3 -1
- package/dist/lifecycle/set-enabled.d.ts.map +1 -1
- package/dist/lifecycle/set-enabled.js +34 -13
- package/dist/lifecycle/set-enabled.js.map +1 -1
- package/dist/lifecycle/tools/capabilities.d.ts +51 -11
- package/dist/lifecycle/tools/capabilities.d.ts.map +1 -1
- package/dist/lifecycle/tools/capabilities.js +67 -15
- package/dist/lifecycle/tools/capabilities.js.map +1 -1
- package/dist/lifecycle/tools/projection.d.ts +5 -1
- package/dist/lifecycle/tools/projection.d.ts.map +1 -1
- package/dist/lifecycle/tools/projection.js +23 -13
- package/dist/lifecycle/tools/projection.js.map +1 -1
- package/dist/lifecycle/types.d.ts +2 -1
- package/dist/lifecycle/types.d.ts.map +1 -1
- package/dist/lifecycle/uninstall.d.ts.map +1 -1
- package/dist/lifecycle/uninstall.js +4 -0
- package/dist/lifecycle/uninstall.js.map +1 -1
- package/package.json +6 -6
|
@@ -74,6 +74,10 @@ function buildModule(ports) {
|
|
|
74
74
|
/** Reads the delivery mode for this process. An unset or unrecognised value is `inject` — an A/B
|
|
75
75
|
* affordance must never be able to change production behaviour by typo. */
|
|
76
76
|
function resolveAgentPluginDeliveryMode() { return ports.deliveryMode; }
|
|
77
|
+
/** Legacy internal positional adapter; all admission and file resolution live in the object boundary. */
|
|
78
|
+
async function resolveAgentPluginRefs(pluginRefIds, workspaceLayout, deliveryMode = resolveAgentPluginDeliveryMode()) {
|
|
79
|
+
return resolveAgentPluginSelection({ pluginRefIds, workspaceLayout }, { deliveryMode });
|
|
80
|
+
}
|
|
77
81
|
/**
|
|
78
82
|
* Resolves every pinned `pluginRefId` into real on-disk text and joins the results into one
|
|
79
83
|
* prompt-prefix block, in the order the refs were pinned.
|
|
@@ -85,6 +89,7 @@ function buildModule(ports) {
|
|
|
85
89
|
* (`resolveAgentPluginLayout().forWorkspace(workspaceId)`), never a shared/instance-level one —
|
|
86
90
|
* see `layout.ts`'s own tenant-isolation header for why a workspace's installed packages must
|
|
87
91
|
* never be resolved against another workspace's tree.
|
|
92
|
+
* @param options - Delivery mode and optional declared skill/file selection; reads stay bounded to the skill folder.
|
|
88
93
|
* @returns `{ ok: true, promptPrefix }` once every ref resolves, or the FIRST `{ ok: false, reason }`
|
|
89
94
|
* encountered — a run pinning two refs where the second is ambiguous still fails clearly, rather
|
|
90
95
|
* than partially augmenting the prompt with only the first ref's content.
|
|
@@ -100,7 +105,7 @@ function buildModule(ports) {
|
|
|
100
105
|
// refuses on a corrupt/unreadable file instead of reading it as "nothing recorded" — injecting a
|
|
101
106
|
// plugin's guidance SPENDS it exactly like a tool call, so this surface must refuse rather than
|
|
102
107
|
// read a fault as consent.
|
|
103
|
-
async function
|
|
108
|
+
async function resolveAgentPluginSelection({ pluginRefIds, workspaceLayout }, { deliveryMode = resolveAgentPluginDeliveryMode(), ...request } = {}) {
|
|
104
109
|
if (pluginRefIds.length === 0)
|
|
105
110
|
return { ok: true, promptPrefix: "" };
|
|
106
111
|
const bundledDigests = await readBundledAgentPluginDigests(workspaceLayout.root);
|
|
@@ -109,7 +114,7 @@ function buildModule(ports) {
|
|
|
109
114
|
const refusal = activationRefusal(pluginRefId, await resolveAgentPluginActivation(workspaceLayout.root, pluginRefId));
|
|
110
115
|
if (refusal !== undefined)
|
|
111
116
|
return { ok: false, reason: refusal };
|
|
112
|
-
const resolved = await resolveOnePluginRef(pluginRefId, workspaceLayout.root, deliveryMode, bundledDigests);
|
|
117
|
+
const resolved = await resolveOnePluginRef({ pluginRefId, packagesDir: workspaceLayout.root, deliveryMode, bundledDigests }, request);
|
|
113
118
|
if (!resolved.ok)
|
|
114
119
|
return resolved;
|
|
115
120
|
sections.push(resolved.section);
|
|
@@ -199,10 +204,7 @@ function buildModule(ports) {
|
|
|
199
204
|
// Superseded installs of a BUNDLED plugin are dropped here — by the build's own recorded answer,
|
|
200
205
|
// never by picking one. Every id the ledger has no authority over reaches the many-match refusal
|
|
201
206
|
// below exactly as it always did.
|
|
202
|
-
|
|
203
|
-
// instructions and let it require its references. Calling it a summary or making required reads
|
|
204
|
-
// conditional lets the outer wrapper override the plugin. The inventory-framing test pins this.
|
|
205
|
-
async function resolveOnePluginRef(pluginRefId, packagesDir, deliveryMode, bundledDigests) {
|
|
207
|
+
async function resolveOnePluginRef({ pluginRefId, packagesDir, deliveryMode, bundledDigests }, request = {}) {
|
|
206
208
|
const installed = preferBundledAgentPluginDigests(await listInstalledPlugins(packagesDir), bundledDigests);
|
|
207
209
|
const matches = installed.filter((plugin) => plugin.pluginId === pluginRefId);
|
|
208
210
|
if (matches.length === 0) {
|
|
@@ -227,25 +229,36 @@ function buildModule(ports) {
|
|
|
227
229
|
if (shippedDigest !== undefined && shippedDigest !== plugin.archiveDigest) {
|
|
228
230
|
return { ok: false, code: 'untrusted', reason: `Agent Plugin '${pluginRefId}' was not loaded: only plugins shipped with ${ports.productName} may add agent guidance under a bundled id (installed digest ${plugin.archiveDigest.slice(0, 12)} is not the one this build shipped)` };
|
|
229
231
|
}
|
|
230
|
-
if (deliveryMode === "pointer")
|
|
232
|
+
if (deliveryMode === "pointer" && request.skill === undefined && request.file === undefined)
|
|
231
233
|
return buildPointerSection(pluginRefId, plugin);
|
|
232
|
-
return buildInjectedSection({ pluginRefId, packagesDir, plugin });
|
|
234
|
+
return buildInjectedSection({ pluginRefId, packagesDir, plugin }, request);
|
|
233
235
|
}
|
|
234
|
-
/**
|
|
235
|
-
async function
|
|
236
|
-
|
|
236
|
+
/** Reference reads omit user notes; an explicit SKILL.md read remains identical to the default. */
|
|
237
|
+
async function instructionNotes({ workspaceRoot, pluginId, file }, _options = {}) {
|
|
238
|
+
if (file !== undefined && file !== 'SKILL.md')
|
|
239
|
+
return [];
|
|
240
|
+
return persistentState.memory({ workspaceRoot, pluginId }).list({ kind: 'notes' });
|
|
241
|
+
}
|
|
242
|
+
/** Read the default instructions or a declared skill's file; retain the reader's safe refusals.
|
|
243
|
+
* User notes accompany instructions only. O(b + entries), bounded by the skill-file reader.
|
|
244
|
+
*/
|
|
245
|
+
async function buildInjectedSection({ pluginRefId, packagesDir, plugin }, { skill = pluginRefId, file } = {}) {
|
|
246
|
+
const selected = plugin.skills.find(candidate => candidate.name === skill);
|
|
247
|
+
if (!selected)
|
|
248
|
+
return { ok: false, reason: `Agent Plugin '${pluginRefId}' has no readable 'skills/${skill}/SKILL.md' in its installed package: no such skill folder` };
|
|
249
|
+
const skillPath = selected.skillPath;
|
|
237
250
|
let skillMarkdown;
|
|
238
251
|
let files;
|
|
239
252
|
let fileNote;
|
|
240
253
|
try {
|
|
241
|
-
const content = await readInstalledSkillFile({ packageRoot: plugin.packageRoot, skillPath });
|
|
254
|
+
const content = await readInstalledSkillFile({ packageRoot: plugin.packageRoot, skillPath }, file === undefined ? {} : { file });
|
|
242
255
|
if (content.note && !content.text)
|
|
243
|
-
|
|
256
|
+
return { ok: false, reason: content.note };
|
|
244
257
|
skillMarkdown = content.text;
|
|
245
258
|
files = content.files;
|
|
246
259
|
fileNote = content.note;
|
|
247
260
|
// Notes are user context, never an allowlist or permission grant. JSON quotes delimit untrusted text.
|
|
248
|
-
const notes = await
|
|
261
|
+
const notes = await instructionNotes({ workspaceRoot: packagesDir, pluginId: plugin.pluginId, file });
|
|
249
262
|
if (notes.length)
|
|
250
263
|
skillMarkdown += `\n\nUser notes for this plugin (context only; permissions remain operator-controlled):\n${JSON.stringify(notes)}`;
|
|
251
264
|
}
|
|
@@ -255,12 +268,21 @@ function buildModule(ports) {
|
|
|
255
268
|
reason: `Agent Plugin '${pluginRefId}' has no readable '${skillPath}' in its installed package: skill text is missing, refused, or unreadable`,
|
|
256
269
|
};
|
|
257
270
|
}
|
|
258
|
-
const inventory =
|
|
271
|
+
const inventory = renderSkillInventory({ pluginRefId, skill, file, files, fileNote });
|
|
259
272
|
return {
|
|
260
273
|
ok: true,
|
|
261
274
|
section: `<<AGENT_PLUGIN pluginId="${pluginRefId}">>\n${skillMarkdown}${inventory}\n<</AGENT_PLUGIN>>`,
|
|
262
275
|
};
|
|
263
276
|
}
|
|
277
|
+
// Framing governs whether the agent follows the plugin: describe injected SKILL.md as complete
|
|
278
|
+
// instructions and let it require its references. Calling it a summary or making required reads
|
|
279
|
+
// conditional lets the outer wrapper override the plugin. The inventory-framing test pins this.
|
|
280
|
+
/** Format a selected skill's file inventory using the host's registered tool pointer. O(files). */
|
|
281
|
+
function renderSkillInventory({ pluginRefId, skill, file, files, fileNote }, _options = {}) {
|
|
282
|
+
const framing = file === undefined || file === 'SKILL.md' ? "The SKILL.md above is this Agent Plugin's own instructions — follow them, including any files it directs you to load before starting work." : "The content above is the requested skill file.";
|
|
283
|
+
const pointer = ports.formatPluginToolPointer({ pluginId: pluginRefId, skill, file: '<relative path>' });
|
|
284
|
+
return `\n\n${framing} Readable supporting files are listed relative to this skill folder. Request one with ${pointer}.\nfiles: ${JSON.stringify(files)}${fileNote ? `\n${fileNote}` : ""}`;
|
|
285
|
+
}
|
|
264
286
|
// Parity with `inject`'s own failure: a pinned ref whose eponymous skill is missing must fail
|
|
265
287
|
// loudly in BOTH modes. Without this check `pointer` would happily emit a well-formed instruction
|
|
266
288
|
// whose no-argument default resolves to some OTHER (alphabetically-first) skill instead of the one
|
|
@@ -276,7 +298,7 @@ function buildModule(ports) {
|
|
|
276
298
|
const body = ports.formatPluginToolPointer({ pluginId: pluginRefId });
|
|
277
299
|
return { ok: true, section: `<<AGENT_PLUGIN pluginId="${pluginRefId}">>\n${body}\n<</AGENT_PLUGIN>>` };
|
|
278
300
|
}
|
|
279
|
-
return { resolveAgentPluginRefs, listInstalledPlugins, isInstalledDigestPresent };
|
|
301
|
+
return { resolveAgentPluginRefs, resolveAgentPluginSelection, listInstalledPlugins, isInstalledDigestPresent };
|
|
280
302
|
}
|
|
281
303
|
const instances = new WeakMap();
|
|
282
304
|
/** Internal composition; one state/queue instance per injected host context. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-agent-plugin-refs.js","sourceRoot":"","sources":["../../src/lifecycle/resolve-agent-plugin-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAelE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-agent-plugin-refs.js","sourceRoot":"","sources":["../../src/lifecycle/resolve-agent-plugin-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Compact model-facing discovery; ranking and complete metadata remain with their existing owners. */
|
|
2
|
+
import type { AgentPluginSearchCandidate } from './search.js';
|
|
3
|
+
export interface AgentPluginDiscoveryMatch {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly pluginId: string;
|
|
6
|
+
readonly enabled: boolean;
|
|
7
|
+
readonly maturity?: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
}
|
|
10
|
+
export interface AgentPluginDiscoveryPage {
|
|
11
|
+
readonly matches: readonly AgentPluginDiscoveryMatch[];
|
|
12
|
+
readonly totalInstalled: number;
|
|
13
|
+
readonly totalMatches: number;
|
|
14
|
+
readonly nextOffset: number | null;
|
|
15
|
+
}
|
|
16
|
+
/** Page an already ordered catalog, bounding the complete serialized result, including JSON escaping.
|
|
17
|
+
* @param required Ranked/listed candidates, a validated count window and the installed catalog size.
|
|
18
|
+
* @param options Optional byte budget (at least 1024); defaults to 8 KiB.
|
|
19
|
+
* @returns Compact matches with a cursor into the original order; no candidate is skipped.
|
|
20
|
+
* @throws RangeError for invalid bounds or an identity too large to fit a single-row page.
|
|
21
|
+
* @complexity O(l²) serialization for l <= 50 rows; O(maxBytes) retained output. No I/O.
|
|
22
|
+
* @example projectAgentPluginSearchPage({ candidates, offset: 0, limit: 10, totalInstalled: candidates.length });
|
|
23
|
+
*/
|
|
24
|
+
export declare function projectAgentPluginSearchPage({ candidates, offset, limit, totalInstalled }: {
|
|
25
|
+
candidates: readonly (AgentPluginSearchCandidate & {
|
|
26
|
+
readonly maturity?: string;
|
|
27
|
+
})[];
|
|
28
|
+
offset: number;
|
|
29
|
+
limit: number;
|
|
30
|
+
totalInstalled: number;
|
|
31
|
+
}, { maxBytes }?: {
|
|
32
|
+
maxBytes?: number;
|
|
33
|
+
}): AgentPluginDiscoveryPage;
|
|
34
|
+
//# sourceMappingURL=search-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-projection.d.ts","sourceRoot":"","sources":["../../src/lifecycle/search-projection.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAyBD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAAE,UAAU,EAAE,SAAS,CAAC,0BAA0B,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAC9L,EAAE,QAAmB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,wBAAwB,CAgB1B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Retain a short, valid UTF-8 description; encoding work is bounded even for huge source prose. */
|
|
2
|
+
function shortDescription({ text }, _options = {}) {
|
|
3
|
+
const bytes = Buffer.from(text.slice(0, 240));
|
|
4
|
+
if (bytes.length <= 240)
|
|
5
|
+
return text.slice(0, 240);
|
|
6
|
+
let end = 240;
|
|
7
|
+
while ((bytes[end] & 0xc0) === 0x80)
|
|
8
|
+
end--;
|
|
9
|
+
return bytes.subarray(0, end).toString('utf8');
|
|
10
|
+
}
|
|
11
|
+
/** Project one candidate without copying skills, keywords, credentials or host metadata. O(1). */
|
|
12
|
+
function discoveryMatch({ candidate }, _options = {}) {
|
|
13
|
+
return { id: candidate.id ?? candidate.pluginId, pluginId: candidate.pluginId, enabled: candidate.enabled,
|
|
14
|
+
...(candidate.maturity ? { maturity: candidate.maturity } : {}),
|
|
15
|
+
description: shortDescription({ text: candidate.description ?? candidate.summary ?? '' }) };
|
|
16
|
+
}
|
|
17
|
+
/** Reject windows/budgets that could produce an invalid or non-advancing page. O(1). */
|
|
18
|
+
function assertPageBounds({ maxBytes, offset, limit }, _options = {}) {
|
|
19
|
+
if (!Number.isSafeInteger(maxBytes) || maxBytes < 1024)
|
|
20
|
+
throw new RangeError('maxBytes must be a safe integer of at least 1024');
|
|
21
|
+
if (!Number.isSafeInteger(offset) || offset < 0)
|
|
22
|
+
throw new RangeError('offset must be a non-negative safe integer');
|
|
23
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > 50)
|
|
24
|
+
throw new RangeError('limit must be an integer of 1..50');
|
|
25
|
+
}
|
|
26
|
+
/** Page an already ordered catalog, bounding the complete serialized result, including JSON escaping.
|
|
27
|
+
* @param required Ranked/listed candidates, a validated count window and the installed catalog size.
|
|
28
|
+
* @param options Optional byte budget (at least 1024); defaults to 8 KiB.
|
|
29
|
+
* @returns Compact matches with a cursor into the original order; no candidate is skipped.
|
|
30
|
+
* @throws RangeError for invalid bounds or an identity too large to fit a single-row page.
|
|
31
|
+
* @complexity O(l²) serialization for l <= 50 rows; O(maxBytes) retained output. No I/O.
|
|
32
|
+
* @example projectAgentPluginSearchPage({ candidates, offset: 0, limit: 10, totalInstalled: candidates.length });
|
|
33
|
+
*/
|
|
34
|
+
export function projectAgentPluginSearchPage({ candidates, offset, limit, totalInstalled }, { maxBytes = 8 * 1024 } = {}) {
|
|
35
|
+
assertPageBounds({ maxBytes, offset, limit });
|
|
36
|
+
const matches = [];
|
|
37
|
+
// Lets a zero-`matches` response distinguish "nothing is installed at all" from "N plugins
|
|
38
|
+
// are installed but none matched this query" — the model needs that distinction to decide
|
|
39
|
+
// whether to suggest installing something new versus rephrasing the search.
|
|
40
|
+
const page = () => ({ matches, totalInstalled, totalMatches: candidates.length,
|
|
41
|
+
nextOffset: offset + matches.length < candidates.length ? offset + matches.length : null });
|
|
42
|
+
for (const candidate of candidates.slice(offset, offset + limit)) {
|
|
43
|
+
matches.push(discoveryMatch({ candidate }));
|
|
44
|
+
if (Buffer.byteLength(JSON.stringify(page())) <= maxBytes)
|
|
45
|
+
continue;
|
|
46
|
+
matches.pop();
|
|
47
|
+
if (!matches.length)
|
|
48
|
+
throw new RangeError('Plugin identity exceeds the discovery page byte budget');
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return page();
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=search-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-projection.js","sourceRoot":"","sources":["../../src/lifecycle/search-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/lifecycle/search.ts"],"names":[],"mappings":"AAAA,uFAAuF;AA+FvF;+EAC+E;AAC/E,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/lifecycle/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PackAgentPluginDirectoryOptional } from "./bundled-source-archive.js";
|
|
1
2
|
import type { AgentPluginLayout } from "./layout.js";
|
|
2
3
|
import type { RetiredAgentPluginOutcome } from "./retire-bundled.js";
|
|
3
4
|
import type { AgentPluginLifecyclePorts } from "./ports.js";
|
|
@@ -14,6 +15,14 @@ export type SeededAgentPluginOutcome = {
|
|
|
14
15
|
readonly status: "failed";
|
|
15
16
|
readonly reason: string;
|
|
16
17
|
};
|
|
18
|
+
/** Host packing policy resolved independently for each source; failures use the existing seed report. */
|
|
19
|
+
export type PackingForSource = (required: {
|
|
20
|
+
sourceDir: string;
|
|
21
|
+
dirName: string;
|
|
22
|
+
}, optional?: Record<string, never>) => PackAgentPluginDirectoryOptional | Promise<PackAgentPluginDirectoryOptional>;
|
|
23
|
+
export interface SeedBundledAgentPluginsOptional {
|
|
24
|
+
readonly packing?: PackAgentPluginDirectoryOptional | PackingForSource;
|
|
25
|
+
}
|
|
17
26
|
export interface SeedBundledAgentPluginsResult {
|
|
18
27
|
/** Directory holding one subdirectory per bundled plugin. `deps.ts`'s `bundledAgentPluginsDir()`
|
|
19
28
|
* in production. */
|
|
@@ -41,6 +50,6 @@ export interface SeedBundledAgentPluginsRequired {
|
|
|
41
50
|
}
|
|
42
51
|
/** Internal composition; one state/queue instance per injected host context. */
|
|
43
52
|
export declare function createSeedBundledModule(ports: AgentPluginLifecyclePorts): {
|
|
44
|
-
seedBundledAgentPlugins: (required: SeedBundledAgentPluginsRequired) => Promise<SeedBundledAgentPluginsResult>;
|
|
53
|
+
seedBundledAgentPlugins: (required: SeedBundledAgentPluginsRequired, optional?: SeedBundledAgentPluginsOptional) => Promise<SeedBundledAgentPluginsResult>;
|
|
45
54
|
};
|
|
46
55
|
//# sourceMappingURL=seed-bundled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-bundled.d.ts","sourceRoot":"","sources":["../../src/lifecycle/seed-bundled.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"seed-bundled.d.ts","sourceRoot":"","sources":["../../src/lifecycle/seed-bundled.ts"],"names":[],"mappings":"AAsFA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAG,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;qBAEiB;IACrB,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CAClC,GACD;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,yGAAyG;AACzG,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAChD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAC7B,gCAAgC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAElF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,GAAG,gBAAgB,CAAC;CACxE;AAED,MAAM,WAAW,6BAA6B;IAC5C;yBACqB;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAEvD;;;;;kBAKc;IACd,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAE9C;oGACgG;IAChG,QAAQ,CAAC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,+BAA+B;IAE9C;;;+EAG2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4LD,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,yBAAyB;wCAzJ1D,+BAA+B,aAC/B,+BAA+B,KACxC,OAAO,CAAC,6BAA6B,CAAC;EA2J1C"}
|
|
@@ -117,7 +117,7 @@ function buildModule(ports) {
|
|
|
117
117
|
// its ledger entry exist by now, and the retirement only has to decide whether to switch it on.
|
|
118
118
|
// A successor whose seed FAILED has neither; `retire-bundled.ts` then keeps the retired plugin
|
|
119
119
|
// rather than remove it in favour of a switch with no code behind it (its header, step 1a).
|
|
120
|
-
async function seedBundledAgentPlugins(required) {
|
|
120
|
+
async function seedBundledAgentPlugins(required, optional = {}) {
|
|
121
121
|
const { layout, workspaceId, sourceRoot } = required;
|
|
122
122
|
const pluginDirNames = await listBundledPluginDirs(sourceRoot);
|
|
123
123
|
try {
|
|
@@ -141,7 +141,7 @@ function buildModule(ports) {
|
|
|
141
141
|
}
|
|
142
142
|
const outcomes = [];
|
|
143
143
|
for (const dirName of pluginDirNames) {
|
|
144
|
-
outcomes.push(await seedOne({ layout, workspaceId, sourceDir: path.join(sourceRoot, dirName), dirName }));
|
|
144
|
+
outcomes.push(await seedOne({ layout, workspaceId, sourceDir: path.join(sourceRoot, dirName), dirName }, optional));
|
|
145
145
|
}
|
|
146
146
|
const ledgerFailure = await recordSeededDigests(layout.forWorkspace({ workspaceId }).root, outcomes);
|
|
147
147
|
const retirements = await retireBundledAgentPlugins({ layout, workspaceId });
|
|
@@ -181,13 +181,15 @@ function buildModule(ports) {
|
|
|
181
181
|
// The plugin's OWN manifest name, not the directory name — `install.ts` reads the id from
|
|
182
182
|
// `plugin.json`, and every consumer keys activation off that same id. Using the folder name
|
|
183
183
|
// here would produce a record nothing ever consults if the two ever disagreed.
|
|
184
|
-
async function seedOne(args) {
|
|
184
|
+
async function seedOne(args, optional = {}) {
|
|
185
185
|
try {
|
|
186
|
-
const
|
|
186
|
+
const packing = typeof optional.packing === 'function'
|
|
187
|
+
? await optional.packing({ sourceDir: args.sourceDir, dirName: args.dirName }, {}) : optional.packing;
|
|
188
|
+
const packed = await packAgentPluginDirectory(args.sourceDir, packing);
|
|
187
189
|
const installed = await installAgentPlugin({
|
|
188
190
|
archive: packed.bytes,
|
|
189
191
|
expectedSha256: packed.sha256,
|
|
190
|
-
archiveReader: createBundledSourceArchiveReader(),
|
|
192
|
+
archiveReader: packed.archiveReader ?? createBundledSourceArchiveReader(),
|
|
191
193
|
layout: args.layout,
|
|
192
194
|
workspaceId: args.workspaceId,
|
|
193
195
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-bundled.js","sourceRoot":"","sources":["../../src/lifecycle/seed-bundled.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"seed-bundled.js","sourceRoot":"","sources":["../../src/lifecycle/seed-bundled.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAyDhE,SAAS,WAAW,CAAC,KAAgC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,EAAE,oCAAoC,EAAE,gCAAgC,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjH,MAAM,EAAE,+BAA+B,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC9E,MAAM,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAC/G,MAAM,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,yBAAyB,EAAE,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACvE;;;;;;;;;;;KAWC;IACH,4FAA4F;IAC5F,8FAA8F;IAC9F,+FAA+F;IAC/F,2FAA2F;IAC3F,gGAAgG;IAChG,kGAAkG;IAClG,2BAA2B;IAC3B,iGAAiG;IACjG,0DAA0D;IAC1D,kGAAkG;IAClG,gGAAgG;IAChG,+FAA+F;IAC/F,4FAA4F;IAC1F,KAAK,UAAU,uBAAuB,CACpC,QAAyC,EACzC,WAA4C,EAAE;QAE9C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAErD,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB;gBACvC,CAAC,CAAC,MAAM,KAAK,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;gBAC5D,CAAC,CAAC,MAAM,2BAA2B,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnH,IAAI,CAAC,SAAS,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC3H,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QACtI,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACL,UAAU;gBACV,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAA4B,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/H,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAA+B,EAAE,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAErG,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAE7E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1G,CAAC;IAED;;;;wDAIoD;IACpD,KAAK,UAAU,mBAAmB,CAChC,aAAqB,EACrB,QAA6C;QAE7C,IAAI,CAAC;YACH,MAAM,+BAA+B,CAAC;gBACpC,aAAa;gBACb,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1G;aACF,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;mCAI+B;IAC/B,KAAK,UAAU,kBAAkB,CAAC,MAAyB,EAAE,WAAmB;QAC9E,IAAI,CAAC;YACH,MAAM,oCAAoC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACtF,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,0FAA0F;IAC5F,4FAA4F;IAC5F,+EAA+E;IAC7E,KAAK,UAAU,OAAO,CAAC,IAKtB,EAAE,WAA4C,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU;gBACpD,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxG,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC;gBACzC,OAAO,EAAE,MAAM,CAAC,KAAK;gBACrB,cAAc,EAAE,MAAM,CAAC,MAAM;gBAC7B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,gCAAgC,EAAE;gBACzE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YAEH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,gCAAgC,CACzD,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,EACjH,EAAE,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAClE,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,kBAAkB,EAAE,QAAQ;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;KAQC;IACH,2FAA2F;IAC3F,2FAA2F;IACzF,KAAK,UAAU,qBAAqB,CAAC,UAAkB;QACrD,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEnC,IAAI,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC1D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;YACnF,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,OAAO,EAA6D,CAAC;AAC3F,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,KAAgC;IACtE,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAAC,CAAC;IACjF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -24,6 +24,8 @@ export interface SetAgentPluginEnabledResult {
|
|
|
24
24
|
}
|
|
25
25
|
/** Internal composition; one state/queue instance per injected host context. */
|
|
26
26
|
export declare function createSetEnabledModule(ports: AgentPluginLifecyclePorts): {
|
|
27
|
-
setAgentPluginEnabled: (input: SetAgentPluginEnabledInput,
|
|
27
|
+
setAgentPluginEnabled: (input: SetAgentPluginEnabledInput, optional?: {
|
|
28
|
+
readonly unlessOperatorDisabled?: boolean;
|
|
29
|
+
}) => Promise<SetAgentPluginEnabledResult>;
|
|
28
30
|
};
|
|
29
31
|
//# sourceMappingURL=set-enabled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-enabled.d.ts","sourceRoot":"","sources":["../../src/lifecycle/set-enabled.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAIxD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,oGAAoG;IACpG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"set-enabled.d.ts","sourceRoot":"","sources":["../../src/lifecycle/set-enabled.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAIxD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,oGAAoG;IACpG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AA4FD,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,yBAAyB;mCAdzB,0BAA0B,aAAY;QAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAQ,OAAO,CAAC,2BAA2B,CAAC;EAkB5K"}
|
|
@@ -16,7 +16,7 @@ export class AgentPluginNotInstalledError extends Error {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
function buildModule(ports) {
|
|
19
|
-
const { setAgentPluginActivation, readAgentPluginActivations } = createActivationModule(ports);
|
|
19
|
+
const { setAgentPluginActivation, readAgentPluginActivations, resolveAgentPluginActivation, enableBundledAgentPluginUnlessOperatorDisabled, isAgentPluginDisabledByOperator } = createActivationModule(ports);
|
|
20
20
|
const { listInstalledPlugins } = createResolveAgentPluginRefsModule(ports);
|
|
21
21
|
const persistentState = createPersistentStateModule(ports);
|
|
22
22
|
async function findInstalled({ workspaceRoot, pluginId }) {
|
|
@@ -41,37 +41,58 @@ function buildModule(ports) {
|
|
|
41
41
|
}
|
|
42
42
|
return compatibility.missingRequires.map(id => `Needs ${id}`);
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
/** The activation write: unconditional, or (`unlessOperatorDisabled`) the locked conditional enable that
|
|
45
|
+
* leaves an operator's own "off" as it is. A plugin already active (no record reads as on) needs no
|
|
46
|
+
* write there: the conditional enable would record it as bundled, and uninstall refuses bundled
|
|
47
|
+
* plugins. Nor does an operator's "off": it stays without the activations write lock (a read-only
|
|
48
|
+
* activations file still answers). Runs under the plugin lock every switch takes, so no operator
|
|
49
|
+
* toggle lands in between.
|
|
50
|
+
* @returns Whether the plugin is enabled as written. */
|
|
51
|
+
async function writeDecision({ input, workspaceRoot, unlessOperatorDisabled, previous }) {
|
|
52
|
+
if (!unlessOperatorDisabled || !input.enabled)
|
|
53
|
+
return (await setAgentPluginActivation({ workspaceRoot, pluginId: input.pluginId, enabled: input.enabled, actor: input.actor })).plugins[input.pluginId].enabled;
|
|
54
|
+
if (previous.verdict === "active")
|
|
55
|
+
return true;
|
|
56
|
+
if (await isAgentPluginDisabledByOperator(workspaceRoot, input.pluginId))
|
|
57
|
+
return false;
|
|
58
|
+
return await enableBundledAgentPluginUnlessOperatorDisabled({ workspaceRoot, pluginId: input.pluginId, actor: input.actor }) !== "left-disabled-by-operator";
|
|
59
|
+
}
|
|
60
|
+
async function setEnabledLocked({ input, workspaceRoot, unlessOperatorDisabled }) {
|
|
45
61
|
// Re-read under the lock: an uninstall or update may have finished while this call waited.
|
|
46
62
|
const { installed, plugin } = await findInstalled({ workspaceRoot, pluginId: input.pluginId });
|
|
47
63
|
// Boot recovery of an unfinished update would overwrite this decision, so it refuses
|
|
48
64
|
// (PLUGIN_UPDATE_PENDING) until a boot recovers it.
|
|
49
65
|
await settleAgentPluginUpdateJournal({ store: createAgentPluginUpdateStore({ ports, workspaceId: input.workspaceId, pluginId: input.pluginId }) });
|
|
50
66
|
const warnings = await enablementWarnings({ input, workspaceRoot, installed, plugin });
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
pluginId: input.pluginId,
|
|
54
|
-
enabled: input.enabled,
|
|
55
|
-
actor: input.actor,
|
|
56
|
-
});
|
|
57
|
-
// Always present: setAgentPluginActivation asserts the same id grammar its normalizer keeps and
|
|
67
|
+
const previous = await resolveAgentPluginActivation(workspaceRoot, input.pluginId);
|
|
68
|
+
// Always a boolean: setAgentPluginActivation asserts the same id grammar its normalizer keeps and
|
|
58
69
|
// writes a boolean `enabled`, so the record it returns holds this entry (the former
|
|
59
70
|
// `?? input.enabled` fallback was unreachable).
|
|
60
|
-
|
|
71
|
+
const enabled = await writeDecision({ input, workspaceRoot, unlessOperatorDisabled, previous });
|
|
72
|
+
if ((previous.verdict === "active") !== enabled) {
|
|
73
|
+
try {
|
|
74
|
+
ports.onActivationChanged?.({ pluginId: input.pluginId, workspaceId: input.workspaceId, enabled, actor: input.actor }, {});
|
|
75
|
+
}
|
|
76
|
+
catch { /* An optional observer cannot undo the committed activation. */ }
|
|
77
|
+
}
|
|
78
|
+
return { pluginId: input.pluginId, enabled, ...(warnings.length ? { warnings } : {}) };
|
|
61
79
|
}
|
|
62
80
|
/**
|
|
63
81
|
* Serialized with install/update/uninstall of the same plugin by the per-plugin state lock, so a
|
|
64
82
|
* toggle never judges compatibility against a package that is mid-swap. The lock is a
|
|
65
83
|
* non-reentrant file lock: no caller holds it around this function (checked 2026-10-21 in this
|
|
66
|
-
* package and in
|
|
84
|
+
* package and in the host admin route / `plugins_set_enabled` tool).
|
|
85
|
+
* @param optional.unlessOperatorDisabled - An enable a system actor makes on a bundled plugin (a sign-in's
|
|
86
|
+
* connect defaults): every check above still runs, but the write is the activations-locked conditional
|
|
87
|
+
* enable, so an operator's own "off" (any disabled record but the seeder's) stays; the result reads false.
|
|
67
88
|
*/
|
|
68
|
-
async function setAgentPluginEnabled(input,
|
|
89
|
+
async function setAgentPluginEnabled(input, optional = {}) {
|
|
69
90
|
const workspaceRoot = ports.layout.forWorkspace({ workspaceId: input.workspaceId }).root;
|
|
70
91
|
// Checked once before locking so an unknown or ungrammatical id stays a not-installed refusal
|
|
71
92
|
// and never creates workspace or lock directories (the lock path re-asserts the id grammar).
|
|
72
93
|
await findInstalled({ workspaceRoot, pluginId: input.pluginId });
|
|
73
94
|
return persistentState.withPluginLock({ workspaceRoot, pluginId: input.pluginId,
|
|
74
|
-
run: () => setEnabledLocked({ input, workspaceRoot }) });
|
|
95
|
+
run: () => setEnabledLocked({ input, workspaceRoot, unlessOperatorDisabled: optional.unlessOperatorDisabled === true }) });
|
|
75
96
|
}
|
|
76
97
|
return { setAgentPluginEnabled };
|
|
77
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-enabled.js","sourceRoot":"","sources":["../../src/lifecycle/set-enabled.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACtI,OAAO,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"set-enabled.js","sourceRoot":"","sources":["../../src/lifecycle/set-enabled.ts"],"names":[],"mappings":"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"}
|