@rho-workspace/rho 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-access.js +3 -2
- package/dist/capabilities.d.ts +2 -2
- package/dist/capabilities.js +6 -1
- package/dist/cli.js +186 -173
- package/dist/contract.generated.d.ts +329 -4
- package/dist/contract.generated.js +1 -1
- package/dist/contracts/owners.generated.js +360 -6
- package/dist/discovery.d.ts +1 -0
- package/dist/discovery.js +3 -3
- package/dist/extension-contract.d.ts +99 -0
- package/dist/extension-contract.js +52 -0
- package/dist/extension-directory.d.ts +9 -0
- package/dist/extension-directory.js +11 -0
- package/dist/extension-worker.d.ts +1 -0
- package/dist/extension-worker.js +36 -0
- package/dist/extensions.d.ts +157 -0
- package/dist/extensions.js +349 -0
- package/dist/plugin-cli.d.ts +1 -0
- package/dist/plugin-cli.js +139 -0
- package/dist/plugin-inventory.json +18 -0
- package/dist/plugins.d.ts +3 -3
- package/dist/project-work.d.ts +3 -1
- package/dist/project-work.js +15 -2
- package/dist/protocol.d.ts +7 -0
- package/dist/protocol.js +4 -2
- package/dist/server.d.ts +4 -1
- package/dist/server.js +55 -8
- package/dist/web/.vite/manifest.json +61 -61
- package/dist/web/assets/{canvas-BXhC8RDZ.js → canvas-D8rDdfDz.js} +1 -1
- package/dist/web/assets/choices-b0XhrGQV.js +1 -0
- package/dist/web/assets/{console-Dbdo-5oO.js → console-BSjLGe0T.js} +1 -1
- package/dist/web/assets/{dist-B2V0VDO0.js → dist-Buk0lwzI.js} +2 -2
- package/dist/web/assets/dist-Cw8hRIlT.js +1 -0
- package/dist/web/assets/dist-Tzoe_zm-.js +3 -0
- package/dist/web/assets/{dist-D25Vn17i.js → dist-foH9IKc6.js} +1 -1
- package/dist/web/assets/explore-in-BVUy3ZW_.js +1 -0
- package/dist/web/assets/graph-1OdIJ9l7.js +2 -0
- package/dist/web/assets/index-CsC3sTRq.css +1 -0
- package/dist/web/assets/{index-BHQIaDsx.js → index-CxmItXqa.js} +85 -85
- package/dist/web/assets/{notes-meaning-DdPbtNzJ.js → notes-meaning-pVbbQUGP.js} +1 -1
- package/dist/web/assets/overview-B9UtVJ32.js +6 -0
- package/dist/web/assets/preview-CksD_5KS.js +1 -0
- package/dist/web/assets/{review-CmWou4Iv.js → review-CMxQlQ-C.js} +1 -1
- package/dist/web/assets/{skills-Dy7n3L9d.js → skills-BFNSyrnD.js} +1 -1
- package/dist/web/assets/{skills-work-Cj0W6b-I.js → skills-work-BGPSnF_I.js} +1 -1
- package/dist/web/assets/{studio-process-QOY_n2_8.js → studio-process-CsRoTHOh.js} +2 -2
- package/dist/web/assets/{timeline-events-DmX1BCh3.js → timeline-events-BbuuFWHV.js} +1 -1
- package/dist/web/assets/{work-turns-Co0C71rJ.js → work-turns-BvJlIMmA.js} +1 -1
- package/dist/web/assets/workspace-CWlkjLNx.js +5 -0
- package/dist/web/composition.json +67 -67
- package/dist/web/index.html +3 -3
- package/dist/web/renderer.json +1 -1
- package/dist/web-assets.d.ts +2 -1
- package/dist/web-assets.js +3 -2
- package/dist/work-contract.js +2 -2
- package/docs/HEADLESS.md +1 -1
- package/docs/PLUGIN-AUTHORING.md +4 -0
- package/docs/THIRD-PARTY-PLUGINS.md +190 -0
- package/node_modules/@rho-workspace/plugin-agent/README.md +39 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.d.ts +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.js +2 -2
- package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.d.ts +6 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.js +174 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.d.ts +82 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.js +15 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session.d.ts +73 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session.js +190 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/index.d.ts +373 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/index.js +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/operations.d.ts +33 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/operations.js +3 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/presentation.d.ts +14 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/presentation.js +2 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.d.ts +15 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.js +37 -0
- package/node_modules/@rho-workspace/plugin-agent/package.json +5 -1
- package/package.json +5 -3
- package/protocol/index.json +58 -4
- package/protocol/operations/agent.sessions.list.json +100 -0
- package/protocol/operations/agent.sessions.read.json +266 -0
- package/protocol/operations/extension.call.json +132 -0
- package/protocol/operations/extension.content.json +78 -0
- package/protocol/operations/extension.describe.json +195 -0
- package/protocol/operations/extension.install.json +198 -0
- package/protocol/operations/extension.list.json +123 -0
- package/protocol/operations/extension.manage.json +55 -0
- package/protocol/operations/extension.read.json +112 -0
- package/protocol/operations/project.work.read.json +3 -2
- package/protocol/operations/session.grant.json +9 -0
- package/scripts/third-party-acceptance.mjs +77 -0
- package/vendor/composition.json +85 -85
- package/vendor/rho-workspace-plugin-agent-0.4.29.tgz +0 -0
- package/dist/web/assets/choices-DU9kHlyQ.js +0 -1
- package/dist/web/assets/dist-BV3hWfn_.js +0 -3
- package/dist/web/assets/dist-CLNF2g-E.js +0 -1
- package/dist/web/assets/explore-in-8Q5ftt-E.js +0 -1
- package/dist/web/assets/graph-hS2kvHTI.js +0 -2
- package/dist/web/assets/index-Cj1_iqyK.css +0 -1
- package/dist/web/assets/overview-BV6ZO5TO.js +0 -6
- package/dist/web/assets/preview-n5lOOdjN.js +0 -1
- package/dist/web/assets/workspace-BKFefRfJ.js +0 -5
- package/vendor/rho-workspace-plugin-agent-0.4.28.tgz +0 -0
|
@@ -424,7 +424,10 @@ const legacyOperationContracts = {
|
|
|
424
424
|
}
|
|
425
425
|
};
|
|
426
426
|
const business = (schema) => structuredClone(schema);
|
|
427
|
+
export { externalSessionSchemas } from './external-session-contract.js';
|
|
428
|
+
import { externalSessionOperations } from './external-session-contract.js';
|
|
427
429
|
export const operationContracts = {
|
|
430
|
+
...externalSessionOperations,
|
|
428
431
|
...activityOperationContracts,
|
|
429
432
|
...legacyOperationContracts,
|
|
430
433
|
'feedback.submit': { inputSchema: feedbackSchemas.FeedbackSubmitInput, outputSchema: feedbackSchemas.SubmissionRecord, requires: ['documents', 'annotations'], effect: 'metadata' },
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import type { EntryPresentation, PluginPresentation } from '@rho-workspace/plugin-contracts';
|
|
2
2
|
export declare const presentation: PluginPresentation;
|
|
3
3
|
export declare const operationPresentation: {
|
|
4
|
+
'agent.sessions.list': {
|
|
5
|
+
order: number;
|
|
6
|
+
displayName: string;
|
|
7
|
+
description: string;
|
|
8
|
+
readOnly: true;
|
|
9
|
+
runsCode: false;
|
|
10
|
+
};
|
|
11
|
+
'agent.sessions.read': {
|
|
12
|
+
order: number;
|
|
13
|
+
displayName: string;
|
|
14
|
+
description: string;
|
|
15
|
+
readOnly: true;
|
|
16
|
+
runsCode: false;
|
|
17
|
+
};
|
|
4
18
|
'agent.activity.read': {
|
|
5
19
|
order: number;
|
|
6
20
|
displayName: string;
|
|
@@ -19,6 +19,8 @@ export const presentation = {
|
|
|
19
19
|
readOnly: false, runsCode: false,
|
|
20
20
|
};
|
|
21
21
|
export const operationPresentation = {
|
|
22
|
+
'agent.sessions.list': { order: 58, displayName: 'External conversations', description: 'Reads retained conversations observed in this project. Input remains in the original client.', readOnly: true, runsCode: false },
|
|
23
|
+
'agent.sessions.read': { order: 59, displayName: 'External conversation', description: 'Reads native turns, tool outcomes and result receipts without sending or resuming anything.', readOnly: true, runsCode: false },
|
|
22
24
|
'agent.activity.read': { order: 62, displayName: 'Agent activity', description: 'Reads selected Claude Code and dsh activity retained by the project Core Host, with cursors and gaps. Starts nothing.', readOnly: true, runsCode: false },
|
|
23
25
|
'agent.activity.outputs': { order: 63, displayName: 'Observed outputs', description: 'Observes bounded current files and hashes inside a selected project output folder, without attributing them to an Agent.', readOnly: true, runsCode: false },
|
|
24
26
|
'agent.activity.capture': { order: 64, displayName: 'Open observed output', description: 'Captures one CSV or image file in the project through Files: the exact version you observed, or its current bytes. CSV columns remain text; no producer or scientific claim is made.', readOnly: false, runsCode: false },
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { ExternalSessionSummary, ExternalTurn, ExternalResult } from './external-session.js';
|
|
3
|
+
export interface ExternalConversationProps {
|
|
4
|
+
session: ExternalSessionSummary;
|
|
5
|
+
read: (before?: number) => Promise<{
|
|
6
|
+
first: number;
|
|
7
|
+
turns: ExternalTurn[];
|
|
8
|
+
session: ExternalSessionSummary;
|
|
9
|
+
}>;
|
|
10
|
+
renderText: (text: string) => ReactNode;
|
|
11
|
+
renderResult: (result: ExternalResult) => ReactNode;
|
|
12
|
+
openFile: (path: string) => void;
|
|
13
|
+
}
|
|
14
|
+
/** Read-only conversation entry. Native client owns every input and permission. */
|
|
15
|
+
export declare function ExternalConversation({ session, read, renderText, renderResult, openFile }: ExternalConversationProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState, useRef } from 'react';
|
|
3
|
+
/** Read-only conversation entry. Native client owns every input and permission. */
|
|
4
|
+
export function ExternalConversation({ session, read, renderText, renderResult, openFile }) {
|
|
5
|
+
const [kept, setKept] = useState(null), [problem, setProblem] = useState('');
|
|
6
|
+
const root = useRef(null);
|
|
7
|
+
const [retry, setRetry] = useState(0);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
let live = true;
|
|
10
|
+
read().then(value => { if (live) {
|
|
11
|
+
setKept(value);
|
|
12
|
+
setProblem('');
|
|
13
|
+
} }, error => { if (live)
|
|
14
|
+
setProblem(error instanceof Error ? error.message : 'Could not read this conversation.'); });
|
|
15
|
+
return () => { live = false; };
|
|
16
|
+
}, [session.id, session.sourceCursor, session.state, read, retry]);
|
|
17
|
+
async function earlier() {
|
|
18
|
+
try {
|
|
19
|
+
const value = await read(kept?.first);
|
|
20
|
+
setKept(old => ({ first: value.first, turns: [...value.turns, ...(old?.turns ?? [])] }));
|
|
21
|
+
setProblem('');
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
setProblem(error instanceof Error ? error.message : 'Could not read earlier messages.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return _jsxs("div", { className: "external-conversation", ref: root, children: [_jsxs("p", { className: "external-input-owner", children: ["Read only \u00B7 Continue in ", session.producer === 'dsh' ? 'DeepSeek Harness' : session.producer, ". Input and permission choices stay there."] }), problem && _jsxs("p", { role: "alert", children: [problem, " ", _jsx("button", { onClick: () => setRetry(n => n + 1), children: "Retry" })] }), session.omittedTurns > 0 && _jsxs("p", { role: "status", children: [session.omittedTurns, " earlier turns are outside the retained observation."] }), session.problem && _jsx("p", { role: "status", children: session.problem }), !kept && !problem && _jsx("p", { children: "Reading conversation\u2026" }), kept?.turns.slice().reverse().map(turn => _jsxs("article", { className: "external-turn", children: [_jsxs("header", { children: [_jsx("h4", { children: turn.prompt || 'Prompt was not observed' }), _jsxs("small", { children: [new Date(turn.at).toLocaleString(), " \u00B7 ", turn.state === 'unknown' ? 'Outcome unknown' : turn.state] })] }), turn.results.length > 0 && _jsxs("section", { className: "external-results", "aria-label": "Results of this turn", children: [_jsx("h5", { children: "Results" }), turn.results.map((result, i) => _jsxs("div", { children: [renderResult(result), turn.tools.some(t => t.id === result.toolId) && _jsxs("button", { className: "text-button", onClick: () => {
|
|
28
|
+
const target = root.current?.querySelector('#' + CSS.escape('external-tool-' + result.toolId));
|
|
29
|
+
const outer = target?.closest('details');
|
|
30
|
+
if (outer)
|
|
31
|
+
outer.open = true;
|
|
32
|
+
const inner = target?.querySelector('details');
|
|
33
|
+
if (inner)
|
|
34
|
+
inner.open = true;
|
|
35
|
+
target?.scrollIntoView({ block: 'center' });
|
|
36
|
+
}, children: ["Show operation \u00B7 ", turn.tools.find(t => t.id === result.toolId)?.name] })] }, i))] }), turn.messages.length > 0 && _jsxs("details", { className: "external-messages", children: [_jsxs("summary", { children: [turn.messages.length, " earlier replies"] }), turn.messages.map((message, index) => _jsx("div", { children: renderText(message.text) }, index))] }), turn.reply ? renderText(turn.reply) : _jsx("p", { children: "No reply was observed." }), _jsxs("details", { className: "external-tools", children: [_jsxs("summary", { children: [turn.tools.length, " operations", turn.omittedTools ? ` · ${turn.omittedTools} not retained` : ''] }), _jsx("ol", { children: turn.tools.map(tool => _jsx("li", { id: 'external-tool-' + tool.id, children: _jsxs("details", { children: [_jsxs("summary", { children: [_jsx("strong", { children: tool.name }), _jsxs("span", { children: [tool.outcome === 'requested' ? 'Awaiting result' : tool.outcome === 'unknown' ? 'Outcome unknown' : tool.outcome, tool.exitCode !== undefined ? ' · exit ' + tool.exitCode : ''] })] }), _jsxs("small", { children: [new Date(tool.at).toLocaleString(), " \u00B7 ", tool.id] }), tool.detail && _jsx("pre", { children: tool.detail }), tool.output && _jsx("pre", { children: tool.output }), tool.paths.length > 0 && _jsxs("div", { className: "external-paths", children: [_jsx("small", { children: "Files mentioned \u00B7 opens current content" }), tool.paths.map(p => _jsx("button", { onClick: () => openFile(p), children: p }, p))] })] }) }, tool.id)) })] }), turn.omittedChars > 0 && _jsx("p", { className: "muted", children: "Some text exceeded the observation limit. The original client keeps its full record." })] }, turn.id)), kept && kept.first > 0 && _jsx("button", { onClick: () => void earlier(), children: "Earlier turns" }), _jsxs("details", { className: "external-source", children: [_jsx("summary", { children: "Source and observation" }), _jsxs("dl", { children: [_jsx("dt", { children: "Native session" }), _jsx("dd", { children: session.sessionId }), _jsx("dt", { children: "Last observed" }), _jsx("dd", { children: new Date(session.observedAt).toLocaleString() }), _jsx("dt", { children: "Native events read" }), _jsx("dd", { children: session.sourceCursor })] })] })] });
|
|
37
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rho-workspace/plugin-agent",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.29",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Rho agent plugin",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
"node": ">=22.22.0 <23"
|
|
9
9
|
},
|
|
10
10
|
"exports": {
|
|
11
|
+
"./external-session": "./dist/external-session.js",
|
|
12
|
+
"./dsh-session": "./dist/dsh-session.js",
|
|
13
|
+
"./external-session-contract": "./dist/external-session-contract.js",
|
|
11
14
|
"./session-contract": "./dist/session-contract.js",
|
|
12
15
|
"./conversation": "./dist/conversation.js",
|
|
13
16
|
"./activity-normalize": "./dist/activity-normalize.js",
|
|
@@ -25,6 +28,7 @@
|
|
|
25
28
|
"./claude-feedback-hook": "./dist/claude-feedback-hook.js",
|
|
26
29
|
"./claude-feedback-worker": "./dist/claude-feedback-worker.js",
|
|
27
30
|
"./ui": "./dist/ui.js",
|
|
31
|
+
"./ui-external-session": "./dist/ui-external-session.js",
|
|
28
32
|
"./layered-contract": "./dist/layered-contract.js",
|
|
29
33
|
"./layered": "./dist/layered.js",
|
|
30
34
|
"./external-acp": "./dist/external-acp.js",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rho-workspace/rho",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Rho local workspace service, scoped browser shell and headless client",
|
|
6
6
|
"license": "AGPL-3.0-only",
|
|
@@ -56,7 +56,9 @@
|
|
|
56
56
|
"scripts/ui-toolchain.json",
|
|
57
57
|
"scripts/ui-preview",
|
|
58
58
|
"web/theme.css",
|
|
59
|
-
"docs/PLUGIN-AUTHORING.md"
|
|
59
|
+
"docs/PLUGIN-AUTHORING.md",
|
|
60
|
+
"docs/THIRD-PARTY-PLUGINS.md",
|
|
61
|
+
"scripts/third-party-acceptance.mjs"
|
|
60
62
|
],
|
|
61
63
|
"scripts": {
|
|
62
64
|
"acceptance:collaboration": "node scripts/collaboration-acceptance.mjs",
|
|
@@ -77,7 +79,7 @@
|
|
|
77
79
|
"@rho-workspace/plugin-tables": "file:vendor/rho-workspace-plugin-tables-0.5.0.tgz",
|
|
78
80
|
"@rho-workspace/plugin-media": "file:vendor/rho-workspace-plugin-media-0.4.0.tgz",
|
|
79
81
|
"@rho-workspace/plugin-charts": "file:vendor/rho-workspace-plugin-charts-0.4.0.tgz",
|
|
80
|
-
"@rho-workspace/plugin-agent": "file:vendor/rho-workspace-plugin-agent-0.4.
|
|
82
|
+
"@rho-workspace/plugin-agent": "file:vendor/rho-workspace-plugin-agent-0.4.29.tgz",
|
|
81
83
|
"@rho-workspace/plugin-annotations": "file:vendor/rho-workspace-plugin-annotations-0.5.2.tgz",
|
|
82
84
|
"@rho-workspace/plugin-console": "file:vendor/rho-workspace-plugin-console-0.3.1.tgz",
|
|
83
85
|
"@rho-workspace/plugin-kernel": "file:vendor/rho-workspace-plugin-kernel-0.5.5.tgz",
|
package/protocol/index.json
CHANGED
|
@@ -74,6 +74,18 @@
|
|
|
74
74
|
"bytes": 3705,
|
|
75
75
|
"sha256": "64d31b4cefd29c0132bc82223775ada64f974df17216a06e8be5e7ff98461d1e"
|
|
76
76
|
},
|
|
77
|
+
"agent.sessions.list": {
|
|
78
|
+
"summary": "agent.sessions.list",
|
|
79
|
+
"path": "operations/agent.sessions.list.json",
|
|
80
|
+
"bytes": 2202,
|
|
81
|
+
"sha256": "43d0306205db0acba77d71280e8b5aa23a47cbed66c05c8710a39e6285fd5e3b"
|
|
82
|
+
},
|
|
83
|
+
"agent.sessions.read": {
|
|
84
|
+
"summary": "agent.sessions.read",
|
|
85
|
+
"path": "operations/agent.sessions.read.json",
|
|
86
|
+
"bytes": 6355,
|
|
87
|
+
"sha256": "1804a39c7edaf0caaf328404936aab0cd4d3d9e1731d7d03a86cc57c642d9c10"
|
|
88
|
+
},
|
|
77
89
|
"annotation.create": {
|
|
78
90
|
"summary": "annotation.create",
|
|
79
91
|
"path": "operations/annotation.create.json",
|
|
@@ -404,6 +416,48 @@
|
|
|
404
416
|
"bytes": 1004,
|
|
405
417
|
"sha256": "4fbf03970c525ad073153aad9846ce960da2369b8cb45b4b6aaeef95cd8f19fd"
|
|
406
418
|
},
|
|
419
|
+
"extension.call": {
|
|
420
|
+
"summary": "Call an enabled third-party operation at the described package digest, under the caller and project. The package runs trusted native code. Non-read calls retain the original changeId: repeat observes that invocation, including unknown outcomes, without re-execution. Completion is not scientific validity.",
|
|
421
|
+
"path": "operations/extension.call.json",
|
|
422
|
+
"bytes": 3054,
|
|
423
|
+
"sha256": "fef35859de95442313afcf2fb517ab7ec2e30781344e0b77174b904f70e5df3b"
|
|
424
|
+
},
|
|
425
|
+
"extension.content": {
|
|
426
|
+
"summary": "Read one installed plugin Skill or standalone HTML view at its selected package digest. Reading starts no plugin or runtime.",
|
|
427
|
+
"path": "operations/extension.content.json",
|
|
428
|
+
"bytes": 1627,
|
|
429
|
+
"sha256": "fe3542d6f35267766ef5227d9d6cb98009895ac9ec9cdc1355fbed97e07c77d9"
|
|
430
|
+
},
|
|
431
|
+
"extension.describe": {
|
|
432
|
+
"summary": "Read an installed third-party package manifest, operation input schemas, required Rho methods, Skills and views. Read its Skill with extension.content before use. Disabled packages cannot run.",
|
|
433
|
+
"path": "operations/extension.describe.json",
|
|
434
|
+
"bytes": 4684,
|
|
435
|
+
"sha256": "441616d6e634daa1ce2d058f6d0b0bd7ccd494de33f01a3dae3d6c344dc6f1a9"
|
|
436
|
+
},
|
|
437
|
+
"extension.install": {
|
|
438
|
+
"summary": "Local person/operator: install a trusted prebuilt npm package, local folder, tarball, or Git source. Lifecycle scripts are disabled. Replacement stages and checks the new package before switching; use replace and expectedDigest for updates.",
|
|
439
|
+
"path": "operations/extension.install.json",
|
|
440
|
+
"bytes": 4803,
|
|
441
|
+
"sha256": "862db9660b7c6d0ddfe53aa2c3e1254c0d4a4a717f23c6b820c3248d916b7ce9"
|
|
442
|
+
},
|
|
443
|
+
"extension.list": {
|
|
444
|
+
"summary": "List independently installed third-party packages and their enabled state, source and immutable digest. Reads start no plugin or runtime. Use extension.describe to discover operation schemas and Skills.",
|
|
445
|
+
"path": "operations/extension.list.json",
|
|
446
|
+
"bytes": 2933,
|
|
447
|
+
"sha256": "4af06a8a7c11dbed53a9d9804d215708d7e6b6c0edacdf1bf2817a3daf24f86f"
|
|
448
|
+
},
|
|
449
|
+
"extension.manage": {
|
|
450
|
+
"summary": "Local person/operator: enable, disable or remove an installed third-party package at the expected digest. Existing native tasks, R sessions, project files and retained receipts are preserved.",
|
|
451
|
+
"path": "operations/extension.manage.json",
|
|
452
|
+
"bytes": 1207,
|
|
453
|
+
"sha256": "90a83550840d2d33d3d0c7e5db0dcd09de4752b0b829f65a0cac2f39dbdf5a07"
|
|
454
|
+
},
|
|
455
|
+
"extension.read": {
|
|
456
|
+
"summary": "Observe an original plugin invocation, including pending or unknown outcomes. Never reruns code. Only its original caller can read it.",
|
|
457
|
+
"path": "operations/extension.read.json",
|
|
458
|
+
"bytes": 2409,
|
|
459
|
+
"sha256": "81f219ef1ce3aa15a3d7bd5865a97e141ff5db3ab4629a1eef7928dcf9681d40"
|
|
460
|
+
},
|
|
407
461
|
"feedback.read": {
|
|
408
462
|
"summary": "Original business binding only: fetch one complete frozen feedback object using its original delivery/context and a stable fetchId. relatedDocumentId is a pointer: read its CURRENT version before conditional edit/save and preserve human changes. This owner-served receipt does not prove client return or understanding.",
|
|
409
463
|
"path": "operations/feedback.read.json",
|
|
@@ -605,8 +659,8 @@
|
|
|
605
659
|
"project.work.read": {
|
|
606
660
|
"summary": "Person at this machine only: read linked Agent sessions, retained native activity identities, current referenced files and the shared notes document. Source cursors and resource versions remain independent. Does not start an Agent, collector or Host.",
|
|
607
661
|
"path": "operations/project.work.read.json",
|
|
608
|
-
"bytes":
|
|
609
|
-
"sha256": "
|
|
662
|
+
"bytes": 22262,
|
|
663
|
+
"sha256": "51d070968ec8b567765acecb7c8ddc83411fe222c469641b2679cc00a5cb1008"
|
|
610
664
|
},
|
|
611
665
|
"protocol.describe": {
|
|
612
666
|
"summary": "protocol.describe",
|
|
@@ -683,8 +737,8 @@
|
|
|
683
737
|
"session.grant": {
|
|
684
738
|
"summary": "session.grant",
|
|
685
739
|
"path": "operations/session.grant.json",
|
|
686
|
-
"bytes":
|
|
687
|
-
"sha256": "
|
|
740
|
+
"bytes": 5059,
|
|
741
|
+
"sha256": "d5d0e15b50349fbec4affa99ceb1b98c79a6dbdce048e1305f8cd8ad31a3fdd2"
|
|
688
742
|
},
|
|
689
743
|
"skill.list": {
|
|
690
744
|
"summary": "List the application and enabled provider Skills shipped in the selected package. Skills guide discovery but do not grant authorization.",
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"method": "agent.sessions.list",
|
|
3
|
+
"inputSchema": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"properties": {
|
|
6
|
+
"projectId": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"pattern": "^[A-Za-z0-9._:@-]{1,128}$"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"required": [
|
|
12
|
+
"projectId"
|
|
13
|
+
],
|
|
14
|
+
"type": "object"
|
|
15
|
+
},
|
|
16
|
+
"outputSchema": {
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"properties": {
|
|
19
|
+
"omitted": {
|
|
20
|
+
"minimum": 0,
|
|
21
|
+
"type": "integer"
|
|
22
|
+
},
|
|
23
|
+
"sessions": {
|
|
24
|
+
"items": {
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"properties": {
|
|
27
|
+
"id": {
|
|
28
|
+
"pattern": "^x-[a-f0-9]{64}$",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"inputOwner": {
|
|
32
|
+
"const": "external"
|
|
33
|
+
},
|
|
34
|
+
"lastAt": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
37
|
+
"observedAt": {
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"omittedTurns": {
|
|
41
|
+
"minimum": 0,
|
|
42
|
+
"type": "integer"
|
|
43
|
+
},
|
|
44
|
+
"problem": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"producer": {
|
|
48
|
+
"type": "string"
|
|
49
|
+
},
|
|
50
|
+
"sessionId": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"sourceCursor": {
|
|
54
|
+
"minimum": 0,
|
|
55
|
+
"type": "integer"
|
|
56
|
+
},
|
|
57
|
+
"state": {
|
|
58
|
+
"enum": [
|
|
59
|
+
"running",
|
|
60
|
+
"completed",
|
|
61
|
+
"failed",
|
|
62
|
+
"stopped",
|
|
63
|
+
"unknown"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"title": {
|
|
67
|
+
"type": "string"
|
|
68
|
+
},
|
|
69
|
+
"turns": {
|
|
70
|
+
"minimum": 0,
|
|
71
|
+
"type": "integer"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"required": [
|
|
75
|
+
"id",
|
|
76
|
+
"producer",
|
|
77
|
+
"sessionId",
|
|
78
|
+
"title",
|
|
79
|
+
"lastAt",
|
|
80
|
+
"observedAt",
|
|
81
|
+
"state",
|
|
82
|
+
"turns",
|
|
83
|
+
"sourceCursor",
|
|
84
|
+
"omittedTurns",
|
|
85
|
+
"inputOwner"
|
|
86
|
+
],
|
|
87
|
+
"type": "object"
|
|
88
|
+
},
|
|
89
|
+
"maxItems": 64,
|
|
90
|
+
"type": "array"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"required": [
|
|
94
|
+
"sessions",
|
|
95
|
+
"omitted"
|
|
96
|
+
],
|
|
97
|
+
"type": "object"
|
|
98
|
+
},
|
|
99
|
+
"description": null
|
|
100
|
+
}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
{
|
|
2
|
+
"method": "agent.sessions.read",
|
|
3
|
+
"inputSchema": {
|
|
4
|
+
"additionalProperties": false,
|
|
5
|
+
"properties": {
|
|
6
|
+
"projectId": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"pattern": "^[A-Za-z0-9._:@-]{1,128}$"
|
|
9
|
+
},
|
|
10
|
+
"before": {
|
|
11
|
+
"minimum": 0,
|
|
12
|
+
"type": "integer"
|
|
13
|
+
},
|
|
14
|
+
"limit": {
|
|
15
|
+
"maximum": 20,
|
|
16
|
+
"minimum": 1,
|
|
17
|
+
"type": "integer"
|
|
18
|
+
},
|
|
19
|
+
"session": {
|
|
20
|
+
"pattern": "^x-[a-f0-9]{64}$",
|
|
21
|
+
"type": "string"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"required": [
|
|
25
|
+
"projectId",
|
|
26
|
+
"session"
|
|
27
|
+
],
|
|
28
|
+
"type": "object"
|
|
29
|
+
},
|
|
30
|
+
"outputSchema": {
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"properties": {
|
|
33
|
+
"first": {
|
|
34
|
+
"minimum": 0,
|
|
35
|
+
"type": "integer"
|
|
36
|
+
},
|
|
37
|
+
"session": {
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"properties": {
|
|
40
|
+
"id": {
|
|
41
|
+
"pattern": "^x-[a-f0-9]{64}$",
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"inputOwner": {
|
|
45
|
+
"const": "external"
|
|
46
|
+
},
|
|
47
|
+
"lastAt": {
|
|
48
|
+
"type": "string"
|
|
49
|
+
},
|
|
50
|
+
"observedAt": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"omittedTurns": {
|
|
54
|
+
"minimum": 0,
|
|
55
|
+
"type": "integer"
|
|
56
|
+
},
|
|
57
|
+
"problem": {
|
|
58
|
+
"type": "string"
|
|
59
|
+
},
|
|
60
|
+
"producer": {
|
|
61
|
+
"type": "string"
|
|
62
|
+
},
|
|
63
|
+
"sessionId": {
|
|
64
|
+
"type": "string"
|
|
65
|
+
},
|
|
66
|
+
"sourceCursor": {
|
|
67
|
+
"minimum": 0,
|
|
68
|
+
"type": "integer"
|
|
69
|
+
},
|
|
70
|
+
"state": {
|
|
71
|
+
"enum": [
|
|
72
|
+
"running",
|
|
73
|
+
"completed",
|
|
74
|
+
"failed",
|
|
75
|
+
"stopped",
|
|
76
|
+
"unknown"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"title": {
|
|
80
|
+
"type": "string"
|
|
81
|
+
},
|
|
82
|
+
"turns": {
|
|
83
|
+
"minimum": 0,
|
|
84
|
+
"type": "integer"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"required": [
|
|
88
|
+
"id",
|
|
89
|
+
"producer",
|
|
90
|
+
"sessionId",
|
|
91
|
+
"title",
|
|
92
|
+
"lastAt",
|
|
93
|
+
"observedAt",
|
|
94
|
+
"state",
|
|
95
|
+
"turns",
|
|
96
|
+
"sourceCursor",
|
|
97
|
+
"omittedTurns",
|
|
98
|
+
"inputOwner"
|
|
99
|
+
],
|
|
100
|
+
"type": "object"
|
|
101
|
+
},
|
|
102
|
+
"turns": {
|
|
103
|
+
"items": {
|
|
104
|
+
"additionalProperties": false,
|
|
105
|
+
"properties": {
|
|
106
|
+
"at": {
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
"endedAt": {
|
|
110
|
+
"type": "string"
|
|
111
|
+
},
|
|
112
|
+
"id": {
|
|
113
|
+
"type": "string"
|
|
114
|
+
},
|
|
115
|
+
"messages": {
|
|
116
|
+
"items": {
|
|
117
|
+
"additionalProperties": false,
|
|
118
|
+
"properties": {
|
|
119
|
+
"at": {
|
|
120
|
+
"type": "string"
|
|
121
|
+
},
|
|
122
|
+
"text": {
|
|
123
|
+
"type": "string"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"required": [
|
|
127
|
+
"at",
|
|
128
|
+
"text"
|
|
129
|
+
],
|
|
130
|
+
"type": "object"
|
|
131
|
+
},
|
|
132
|
+
"maxItems": 200,
|
|
133
|
+
"type": "array"
|
|
134
|
+
},
|
|
135
|
+
"omittedChars": {
|
|
136
|
+
"minimum": 0,
|
|
137
|
+
"type": "integer"
|
|
138
|
+
},
|
|
139
|
+
"omittedTools": {
|
|
140
|
+
"minimum": 0,
|
|
141
|
+
"type": "integer"
|
|
142
|
+
},
|
|
143
|
+
"prompt": {
|
|
144
|
+
"type": "string"
|
|
145
|
+
},
|
|
146
|
+
"reply": {
|
|
147
|
+
"type": "string"
|
|
148
|
+
},
|
|
149
|
+
"results": {
|
|
150
|
+
"items": {
|
|
151
|
+
"additionalProperties": false,
|
|
152
|
+
"properties": {
|
|
153
|
+
"id": {
|
|
154
|
+
"type": "string"
|
|
155
|
+
},
|
|
156
|
+
"path": {
|
|
157
|
+
"type": "string"
|
|
158
|
+
},
|
|
159
|
+
"projectId": {
|
|
160
|
+
"type": "string"
|
|
161
|
+
},
|
|
162
|
+
"toolId": {
|
|
163
|
+
"type": "string"
|
|
164
|
+
},
|
|
165
|
+
"version": {
|
|
166
|
+
"type": "string"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"required": [
|
|
170
|
+
"path",
|
|
171
|
+
"toolId"
|
|
172
|
+
],
|
|
173
|
+
"type": "object"
|
|
174
|
+
},
|
|
175
|
+
"maxItems": 64,
|
|
176
|
+
"type": "array"
|
|
177
|
+
},
|
|
178
|
+
"state": {
|
|
179
|
+
"enum": [
|
|
180
|
+
"running",
|
|
181
|
+
"completed",
|
|
182
|
+
"failed",
|
|
183
|
+
"stopped",
|
|
184
|
+
"unknown"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
"tools": {
|
|
188
|
+
"items": {
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"properties": {
|
|
191
|
+
"at": {
|
|
192
|
+
"type": "string"
|
|
193
|
+
},
|
|
194
|
+
"detail": {
|
|
195
|
+
"type": "string"
|
|
196
|
+
},
|
|
197
|
+
"exitCode": {
|
|
198
|
+
"type": "integer"
|
|
199
|
+
},
|
|
200
|
+
"id": {
|
|
201
|
+
"type": "string"
|
|
202
|
+
},
|
|
203
|
+
"name": {
|
|
204
|
+
"type": "string"
|
|
205
|
+
},
|
|
206
|
+
"outcome": {
|
|
207
|
+
"enum": [
|
|
208
|
+
"requested",
|
|
209
|
+
"returned",
|
|
210
|
+
"failed",
|
|
211
|
+
"unknown"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"output": {
|
|
215
|
+
"type": "string"
|
|
216
|
+
},
|
|
217
|
+
"paths": {
|
|
218
|
+
"items": {
|
|
219
|
+
"type": "string"
|
|
220
|
+
},
|
|
221
|
+
"maxItems": 32,
|
|
222
|
+
"type": "array"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"required": [
|
|
226
|
+
"id",
|
|
227
|
+
"at",
|
|
228
|
+
"name",
|
|
229
|
+
"detail",
|
|
230
|
+
"output",
|
|
231
|
+
"outcome",
|
|
232
|
+
"paths"
|
|
233
|
+
],
|
|
234
|
+
"type": "object"
|
|
235
|
+
},
|
|
236
|
+
"maxItems": 256,
|
|
237
|
+
"type": "array"
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"required": [
|
|
241
|
+
"id",
|
|
242
|
+
"at",
|
|
243
|
+
"state",
|
|
244
|
+
"prompt",
|
|
245
|
+
"reply",
|
|
246
|
+
"messages",
|
|
247
|
+
"tools",
|
|
248
|
+
"results",
|
|
249
|
+
"omittedTools",
|
|
250
|
+
"omittedChars"
|
|
251
|
+
],
|
|
252
|
+
"type": "object"
|
|
253
|
+
},
|
|
254
|
+
"maxItems": 20,
|
|
255
|
+
"type": "array"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"required": [
|
|
259
|
+
"session",
|
|
260
|
+
"first",
|
|
261
|
+
"turns"
|
|
262
|
+
],
|
|
263
|
+
"type": "object"
|
|
264
|
+
},
|
|
265
|
+
"description": null
|
|
266
|
+
}
|