@plurnk/plurnk-agui 3.1.0 → 4.0.0
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/.env.defaults +17 -8
- package/README.md +33 -13
- package/SPEC.md +589 -268
- package/dist/AguiPlus.d.ts +24 -29
- package/dist/AguiPlus.d.ts.map +1 -1
- package/dist/AguiPlus.js +25 -36
- package/dist/AguiPlus.js.map +1 -1
- package/dist/AguiSurface.d.ts +1 -2
- package/dist/AguiSurface.d.ts.map +1 -1
- package/dist/AguiSurface.js +23 -16
- package/dist/AguiSurface.js.map +1 -1
- package/dist/AuthorizationDocuments.d.ts +33 -0
- package/dist/AuthorizationDocuments.d.ts.map +1 -0
- package/dist/AuthorizationDocuments.js +84 -0
- package/dist/AuthorizationDocuments.js.map +1 -0
- package/dist/BuiltinActions.d.ts +11 -5
- package/dist/BuiltinActions.d.ts.map +1 -1
- package/dist/BuiltinActions.js +73 -125
- package/dist/BuiltinActions.js.map +1 -1
- package/dist/EventRouter.d.ts +11 -3
- package/dist/EventRouter.d.ts.map +1 -1
- package/dist/EventRouter.js +17 -32
- package/dist/EventRouter.js.map +1 -1
- package/dist/MessageAddress.d.ts +7 -5
- package/dist/MessageAddress.d.ts.map +1 -1
- package/dist/MessageAddress.js +14 -12
- package/dist/MessageAddress.js.map +1 -1
- package/dist/Module.d.ts +5 -4
- package/dist/Module.d.ts.map +1 -1
- package/dist/Module.js +221 -82
- package/dist/Module.js.map +1 -1
- package/dist/OAuthServer.d.ts +30 -0
- package/dist/OAuthServer.d.ts.map +1 -0
- package/dist/OAuthServer.js +607 -0
- package/dist/OAuthServer.js.map +1 -0
- package/dist/Portal.d.ts +39 -9
- package/dist/Portal.d.ts.map +1 -1
- package/dist/Portal.js +414 -141
- package/dist/Portal.js.map +1 -1
- package/dist/ProposalHitl.d.ts +17 -4
- package/dist/ProposalHitl.d.ts.map +1 -1
- package/dist/ProposalHitl.js +30 -43
- package/dist/ProposalHitl.js.map +1 -1
- package/dist/RunHandler.d.ts +18 -8
- package/dist/RunHandler.d.ts.map +1 -1
- package/dist/RunHandler.js +214 -96
- package/dist/RunHandler.js.map +1 -1
- package/dist/ThreadAddress.d.ts +8 -0
- package/dist/ThreadAddress.d.ts.map +1 -0
- package/dist/ThreadAddress.js +18 -0
- package/dist/ThreadAddress.js.map +1 -0
- package/dist/Translator.d.ts +52 -2
- package/dist/Translator.d.ts.map +1 -1
- package/dist/Translator.js +390 -117
- package/dist/Translator.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +22 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +65 -13
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/run-events.d.ts +1 -0
- package/dist/run-events.d.ts.map +1 -1
- package/dist/run-events.js +4 -2
- package/dist/run-events.js.map +1 -1
- package/dist/types.d.ts +4 -22
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -8
package/dist/EventRouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventRouter.js","sourceRoot":"","sources":["../src/EventRouter.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qFAAqF;AACrF,sFAAsF;AACtF,8FAA8F;AAC9F,wFAAwF;AACxF,kFAAkF
|
|
1
|
+
{"version":3,"file":"EventRouter.js","sourceRoot":"","sources":["../src/EventRouter.ts"],"names":[],"mappings":"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"}
|
package/dist/MessageAddress.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { ApplicationPort } from "@plurnk/plurnk-contracts";
|
|
2
1
|
import type { RunAgentInput, UserMessage } from "./types.ts";
|
|
3
|
-
|
|
2
|
+
import type { ApplicationPort } from "@plurnk/plurnk-contracts/port";
|
|
3
|
+
/** {§agui-run-source}: message identity belongs to the thread, not its transport run. */
|
|
4
4
|
export default class MessageAddress {
|
|
5
|
-
|
|
6
|
-
static
|
|
7
|
-
static
|
|
5
|
+
/** The principal is the credential's subject ({§agui-http-authorization}); `anonymous` names nobody. */
|
|
6
|
+
static owner(principal: string, threadId: string): string;
|
|
7
|
+
static submission(principal: string, { threadId, runId }: Pick<RunAgentInput, "threadId" | "runId">, message: UserMessage): Pick<Parameters<ApplicationPort["runLoop"]>[0], "source" | "messageAddress" | "envelope">;
|
|
8
|
+
static render(principal: string, threadId: string, messageId: string): string;
|
|
9
|
+
/** The message id of an address on this thread, under whichever principal submitted it. */
|
|
8
10
|
static messageId(address: unknown, threadId: string): string | null;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=MessageAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAddress.d.ts","sourceRoot":"","sources":["../src/MessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageAddress.d.ts","sourceRoot":"","sources":["../src/MessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE,yFAAyF;AACzF,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,wGAAwG;IACxG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;IAED,MAAM,CAAC,UAAU,CACb,SAAS,EAAE,MAAM,EACjB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC,EAC9D,OAAO,EAAE,WAAW,GACrB,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAG3F;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5E;IAED,2FAA2F;IAC3F,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKlE;CACJ"}
|
package/dist/MessageAddress.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
const ADDRESS = /^agui:\/\/[^/]+\/threads\/([^/]*)\/messages\/([^/]+)$/u;
|
|
2
|
+
/** {§agui-run-source}: message identity belongs to the thread, not its transport run. */
|
|
2
3
|
export default class MessageAddress {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
/** The principal is the credential's subject ({§agui-http-authorization}); `anonymous` names nobody. */
|
|
5
|
+
static owner(principal, threadId) {
|
|
6
|
+
return `agui://${encodeURIComponent(principal)}/threads/${encodeURIComponent(threadId)}`;
|
|
5
7
|
}
|
|
6
|
-
static submission({ threadId, runId }, message) {
|
|
7
|
-
const address = MessageAddress.render(threadId, message.id);
|
|
8
|
+
static submission(principal, { threadId, runId }, message) {
|
|
9
|
+
const address = MessageAddress.render(principal, threadId, message.id);
|
|
8
10
|
return { source: address, messageAddress: address, envelope: { threadId, runId, message } };
|
|
9
11
|
}
|
|
10
|
-
static render(threadId, messageId) {
|
|
11
|
-
return `${MessageAddress.owner(threadId)}/messages/${encodeURIComponent(messageId)}`;
|
|
12
|
+
static render(principal, threadId, messageId) {
|
|
13
|
+
return `${MessageAddress.owner(principal, threadId)}/messages/${encodeURIComponent(messageId)}`;
|
|
12
14
|
}
|
|
15
|
+
/** The message id of an address on this thread, under whichever principal submitted it. */
|
|
13
16
|
static messageId(address, threadId) {
|
|
14
|
-
|
|
15
|
-
if (typeof address !== "string" || !address.startsWith(prefix))
|
|
17
|
+
if (typeof address !== "string")
|
|
16
18
|
return null;
|
|
17
|
-
const
|
|
18
|
-
if (
|
|
19
|
+
const match = ADDRESS.exec(address);
|
|
20
|
+
if (match === null || match[1] !== encodeURIComponent(threadId))
|
|
19
21
|
return null;
|
|
20
22
|
try {
|
|
21
|
-
return decodeURIComponent(
|
|
23
|
+
return decodeURIComponent(match[2]);
|
|
22
24
|
}
|
|
23
25
|
catch {
|
|
24
26
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageAddress.js","sourceRoot":"","sources":["../src/MessageAddress.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"MessageAddress.js","sourceRoot":"","sources":["../src/MessageAddress.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,wDAAwD,CAAC;AAEzE,yFAAyF;AACzF,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,wGAAwG;IACxG,MAAM,CAAC,KAAK,CAAC,SAAiB,EAAE,QAAgB;QAC5C,OAAO,UAAU,kBAAkB,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,UAAU,CACb,SAAiB,EACjB,EAAE,QAAQ,EAAE,KAAK,EAA6C,EAC9D,OAAoB;QAEpB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAiB,EAAE,QAAgB,EAAE,SAAiB;QAChE,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IACpG,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAgB;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,IAAI,CAAC;YAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IACxE,CAAC;CACJ"}
|
package/dist/Module.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { type PortalPort } from "./Portal.ts";
|
|
2
|
-
import {
|
|
2
|
+
import type { ApplicationPort } from "@plurnk/plurnk-contracts/port";
|
|
3
3
|
import { type ModuleOptions } from "./config.ts";
|
|
4
4
|
import { type BuiltinActionsPort } from "./BuiltinActions.ts";
|
|
5
5
|
import { type RunPort } from "./RunHandler.ts";
|
|
6
6
|
import type { SchemeRegistrationSeam } from "@plurnk/plurnk-schemes";
|
|
7
7
|
import type { DaemonModule } from "@plurnk/plurnk-modules";
|
|
8
8
|
export type { ModuleOptions } from "./config.ts";
|
|
9
|
-
export type AguiPort = Pick<ApplicationPort, "attachWorkspace" | "configurationNotices" | "
|
|
10
|
-
export
|
|
9
|
+
export type AguiPort = Pick<ApplicationPort, "attachWorkspace" | "configurationNotices" | "credentials" | "createWorker" | "createWorkspace" | "workerAccounting" | "httpAddress" | "invokeModuleAction" | "listClientDisplayCapabilities" | "listModuleActions" | "listWorkerLoops" | "listWorkers" | "listWorkspaces" | "readWorker" | "readWorkerReference" | "ensureWorkerReference" | "readWorkerModel" | "registerHttpRoute" | "workspaceDerivationStatus" | "workspacePreparationStatus"> & PortalPort & BuiltinActionsPort & RunPort;
|
|
10
|
+
export type AguiSetupSeam = SchemeRegistrationSeam & Pick<ApplicationPort, "credentials" | "httpAddress">;
|
|
11
|
+
export default class Module implements DaemonModule<AguiSetupSeam, AguiPort> {
|
|
11
12
|
#private;
|
|
12
13
|
readonly mounts: readonly string[];
|
|
13
14
|
private constructor();
|
|
14
15
|
static create(opts?: ModuleOptions): Module;
|
|
15
|
-
setup(seam:
|
|
16
|
+
setup(seam: AguiSetupSeam): Promise<void>;
|
|
16
17
|
start(seam: AguiPort): Promise<void>;
|
|
17
18
|
stop(): void;
|
|
18
19
|
close(): void;
|
package/dist/Module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"AAgBA,OAAe,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Module.d.ts","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"AAgBA,OAAe,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAKtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAwB,KAAK,aAAa,EAA8B,MAAM,aAAa,CAAC;AAEnG,OAAuB,EAAE,KAAK,kBAAkB,EAA8B,MAAM,qBAAqB,CAAC;AAG1G,OAAmB,EAAE,KAAK,OAAO,EAAsB,MAAM,iBAAiB,CAAC;AAG/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,MAAM,MAAM,QAAQ,GAAG,IAAI,CACvB,eAAe,EACb,iBAAiB,GACjB,sBAAsB,GACtB,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,oBAAoB,GACpB,+BAA+B,GAC/B,mBAAmB,GACnB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,2BAA2B,GAC3B,4BAA4B,CACjC,GAAG,UAAU,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAsB9C,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;AAS1G,MAAM,CAAC,OAAO,OAAO,MAAO,YAAW,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;;IAGxE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAgBnC,OAAO,eAKN;IAYD,MAAM,CAAC,MAAM,CAAC,IAAI,GAAE,aAAkB,GAAG,MAAM,CAE9C;IAyDK,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9C;IAGK,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBzC;IAED,IAAI,IAAI,IAAI,CAEX;IAED,KAAK,IAAI,IAAI,CAMZ;CAgXJ"}
|