happy2 0.0.14 → 0.0.16
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/package.json +1 -1
- package/packages/happy2-server/PLUGINS.md +11 -5
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js +1 -1
- package/packages/happy2-server/dist/modules/agent/agentChatGetContext.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentConversationCreate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentConversationCreate.js +1 -1
- package/packages/happy2-server/dist/modules/agent/agentConversationCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentCreate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentCreate.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentDefaultCreate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentDefaultCreate.js +1 -1
- package/packages/happy2-server/dist/modules/agent/agentDefaultCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCommitChange.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.d.ts +4 -3
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.js +73 -23
- package/packages/happy2-server/dist/modules/agent/agentImageCreate.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageDeactivate.d.ts +15 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDeactivate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDeactivate.js +92 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDeactivate.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDockerfileGetForHost.d.ts +12 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDockerfileGetForHost.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDockerfileGetForHost.js +28 -0
- package/packages/happy2-server/dist/modules/agent/agentImageDockerfileGetForHost.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageFindDefinition.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageFindDefinition.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageFindDefinition.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGet.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageGet.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetChangeContext.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetReadyDefault.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageGetReadyDefault.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageGetReadyDefault.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageList.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageList.js +2 -1
- package/packages/happy2-server/dist/modules/agent/agentImageList.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageListForHost.d.ts +17 -0
- package/packages/happy2-server/dist/modules/agent/agentImageListForHost.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageListForHost.js +38 -0
- package/packages/happy2-server/dist/modules/agent/agentImageListForHost.js.map +1 -0
- package/packages/happy2-server/dist/modules/agent/agentImageListRequestedBuildIds.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageListRequestedBuildIds.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageListRequestedBuildIds.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js +3 -3
- package/packages/happy2-server/dist/modules/agent/agentImageRequestBuild.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.d.ts +4 -3
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js +10 -6
- package/packages/happy2-server/dist/modules/agent/agentImageSetDefault.js.map +1 -1
- package/packages/happy2-server/dist/modules/agent/agentImageTakeBuild.js +2 -2
- package/packages/happy2-server/dist/modules/agent/agentImageTakeBuild.js.map +1 -1
- package/packages/happy2-server/dist/modules/agents/daemon.d.ts +12 -0
- package/packages/happy2-server/dist/modules/agents/daemon.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/daemon.js +88 -1
- package/packages/happy2-server/dist/modules/agents/daemon.js.map +1 -1
- package/packages/happy2-server/dist/modules/agents/index.d.ts +1 -1
- package/packages/happy2-server/dist/modules/agents/index.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/index.js +1 -1
- package/packages/happy2-server/dist/modules/agents/index.js.map +1 -1
- package/packages/happy2-server/dist/modules/agents/service.d.ts +74 -2
- package/packages/happy2-server/dist/modules/agents/service.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/agents/service.js +53 -0
- package/packages/happy2-server/dist/modules/agents/service.js.map +1 -1
- package/packages/happy2-server/dist/modules/draft/draftList.d.ts +8 -0
- package/packages/happy2-server/dist/modules/draft/draftList.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/draft/draftList.js +27 -0
- package/packages/happy2-server/dist/modules/draft/draftList.js.map +1 -0
- package/packages/happy2-server/dist/modules/draft/draftUpdate.d.ts +16 -0
- package/packages/happy2-server/dist/modules/draft/draftUpdate.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/draft/draftUpdate.js +64 -0
- package/packages/happy2-server/dist/modules/draft/draftUpdate.js.map +1 -0
- package/packages/happy2-server/dist/modules/draft/types.d.ts +7 -0
- package/packages/happy2-server/dist/modules/draft/types.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/draft/types.js +2 -0
- package/packages/happy2-server/dist/modules/draft/types.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/environmentManagementServer.test.d.ts +2 -0
- package/packages/happy2-server/dist/modules/plugin/environmentManagementServer.test.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/environmentManagementServer.test.js +183 -0
- package/packages/happy2-server/dist/modules/plugin/environmentManagementServer.test.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/impl/apiPermissions.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/impl/apiPermissions.js +22 -0
- package/packages/happy2-server/dist/modules/plugin/impl/apiPermissions.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.js +7 -1
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.test.d.ts +2 -0
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.test.d.ts.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.test.js +37 -0
- package/packages/happy2-server/dist/modules/plugin/packageLinkDownloader.test.js.map +1 -0
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.js +2 -2
- package/packages/happy2-server/dist/modules/plugin/pluginInstall.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.js +5 -1
- package/packages/happy2-server/dist/modules/plugin/pluginInstallationGetRuntimeConfiguration.js.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/types.d.ts +2 -2
- package/packages/happy2-server/dist/modules/plugin/types.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/plugin/types.js +3 -0
- package/packages/happy2-server/dist/modules/plugin/types.js.map +1 -1
- package/packages/happy2-server/dist/modules/schema.d.ts +276 -0
- package/packages/happy2-server/dist/modules/schema.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/schema.js +14 -0
- package/packages/happy2-server/dist/modules/schema.js.map +1 -1
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.d.ts.map +1 -1
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.js +2 -0
- package/packages/happy2-server/dist/modules/sync/syncGetDifference.js.map +1 -1
- package/packages/happy2-server/dist/routes/agents.d.ts +1 -1
- package/packages/happy2-server/dist/routes/agents.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/agents.js +132 -0
- package/packages/happy2-server/dist/routes/agents.js.map +1 -1
- package/packages/happy2-server/dist/routes/collaboration.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/collaboration.js +38 -1
- package/packages/happy2-server/dist/routes/collaboration.js.map +1 -1
- package/packages/happy2-server/dist/routes/pluginHost.d.ts +3 -1
- package/packages/happy2-server/dist/routes/pluginHost.d.ts.map +1 -1
- package/packages/happy2-server/dist/routes/pluginHost.js +113 -0
- package/packages/happy2-server/dist/routes/pluginHost.js.map +1 -1
- package/packages/happy2-server/dist/web/assets/index-BxtJtZpt.js +39 -0
- package/packages/happy2-server/dist/web/assets/{index-Dys3sWv8.css → index-m8C1tSYV.css} +1 -1
- package/packages/happy2-server/dist/web/index.html +2 -2
- package/packages/happy2-server/drizzle/0030_personal_synced_drafts.sql +11 -0
- package/packages/happy2-server/drizzle/0031_agent_image_deactivation.sql +1 -0
- package/packages/happy2-server/drizzle/meta/_journal.json +14 -0
- package/packages/happy2-server/plugins/README.md +3 -1
- package/packages/happy2-server/plugins/environment-management/container/Dockerfile +6 -0
- package/packages/happy2-server/plugins/environment-management/plugin.json +17 -0
- package/packages/happy2-server/plugins/environment-management/plugin.png +0 -0
- package/packages/happy2-server/plugins/environment-management/server.mjs +234 -0
- package/packages/happy2-server/plugins/environment-management/skills/happy2-environment-management/SKILL.md +41 -0
- package/packages/happy2-server/plugins/plugin-developer/skills/happy2-plugin-development/references/host-api.md +25 -0
- package/packages/happy2-server/plugins/plugin-developer/skills/happy2-plugin-development/references/package-format.md +3 -0
- package/packages/happy2-server/dist/web/assets/index-Dn5SZu3y.js +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageFindDefinition.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageFindDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageFindDefinition.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageFindDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,QAAyB,EACzB,QAAyF;IAEzF,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ;SACzB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CACF,GAAG,CACC,YAAY,IAAI,QAAQ;QACpB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC7D,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAChC,CACJ;SACA,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { CollaborationError } from "../chat/types.js";
|
|
|
2
2
|
import {} from "../drizzle.js";
|
|
3
3
|
import { agentImageDetailsSelection } from "./impl/agentImageDetailsSelection.js";
|
|
4
4
|
import { agentImages } from "../schema.js";
|
|
5
|
-
import { eq } from "drizzle-orm";
|
|
5
|
+
import { and, eq, isNull } from "drizzle-orm";
|
|
6
6
|
import { asAgentImageDetails } from "./impl/asAgentImageDetails.js";
|
|
7
7
|
import { userRequireAnyPermission } from "../permission/userRequireAnyPermission.js";
|
|
8
8
|
/**
|
|
@@ -14,7 +14,7 @@ export async function agentImageGet(executor, actorUserId, imageId) {
|
|
|
14
14
|
const [image] = await executor
|
|
15
15
|
.select(agentImageDetailsSelection)
|
|
16
16
|
.from(agentImages)
|
|
17
|
-
.where(eq(agentImages.id, imageId))
|
|
17
|
+
.where(and(eq(agentImages.id, imageId), isNull(agentImages.deletedAt)))
|
|
18
18
|
.limit(1);
|
|
19
19
|
if (!image)
|
|
20
20
|
throw new CollaborationError("not_found", "Agent image was not found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageGet.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageGet.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGet.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,QAAyB,EACzB,WAAmB,EACnB,OAAe;IAEf,MAAM,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ;SACzB,MAAM,CAAC,0BAA0B,CAAC;SAClC,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;SACtE,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IACnF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -27,7 +27,7 @@ export async function agentImageGetChangeContext(executor, input) {
|
|
|
27
27
|
status: agentImages.status,
|
|
28
28
|
})
|
|
29
29
|
.from(agentImages)
|
|
30
|
-
.where(eq(agentImages.id, input.imageId))
|
|
30
|
+
.where(and(eq(agentImages.id, input.imageId), isNull(agentImages.deletedAt)))
|
|
31
31
|
.limit(1)
|
|
32
32
|
.then((rows) => rows[0]),
|
|
33
33
|
executor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageGetChangeContext.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAwB,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;IAiBD,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,QAAQ;aACH,MAAM,CAAC,aAAa,CAAC;aACrB,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC;YACJ,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC;aACD,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageGetChangeContext.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetChangeContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAwB,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEhF,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,QAAyB,EACzB,KAIC;IAiBD,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,QAAQ;aACH,MAAM,CAAC,aAAa,CAAC;aACrB,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CACF,GAAG,CACC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EACvB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAC1B,CACJ;aACA,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC;YACJ,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC;aACD,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;aAC5E,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC;YACJ,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,SAAS,EAAE,gBAAgB,CAAC,SAAS;SACxC,CAAC;aACD,IAAI,CAAC,gBAAgB,CAAC;aACtB,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;aACrD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACrC,QAAQ;aACH,MAAM,CAAC;YACJ,EAAE,EAAE,UAAU,CAAC,aAAa;SAC/B,CAAC;aACD,IAAI,CAAC,UAAU,CAAC;aAChB,KAAK,CACF,GAAG,CACC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,EAC7C,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CACrD,CACJ;aACA,KAAK,CAAC,CAAC,CAAC;aACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa;QAChD,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,cAAc,KAAK,KAAK,CAAC,EAAE;QACzC,MAAM,IAAI,kBAAkB,CACxB,UAAU,EACV,mEAAmE,CACtE,CAAC;IACN,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;QACH,cAAc;QACd,KAAK,EAAE;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC7B;QACD,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;KACtB,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageGetReadyDefault.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetReadyDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAKrD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC3C,QAAQ,EAAE,eAAe,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"agentImageGetReadyDefault.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetReadyDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAKrD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC3C,QAAQ,EAAE,eAAe,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAyB1C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {} from "./impl/agentExecutionImage.js";
|
|
2
2
|
import {} from "../drizzle.js";
|
|
3
3
|
import { agentImages, agentImageSettings } from "../schema.js";
|
|
4
|
-
import { and, eq, sql } from "drizzle-orm";
|
|
4
|
+
import { and, eq, isNull, sql } from "drizzle-orm";
|
|
5
5
|
/**
|
|
6
6
|
* Returns the configured default image only when it is ready and has a resolved Docker image identifier.
|
|
7
7
|
* Treating every incomplete setting as absent prevents agent creation from selecting a build that cannot yet execute.
|
|
@@ -15,7 +15,7 @@ export async function agentImageGetReadyDefault(executor) {
|
|
|
15
15
|
})
|
|
16
16
|
.from(agentImageSettings)
|
|
17
17
|
.innerJoin(agentImages, eq(agentImages.id, agentImageSettings.defaultImageId))
|
|
18
|
-
.where(and(eq(agentImageSettings.id, 1), eq(agentImages.status, "ready"), sql `${agentImages.dockerImageId} IS NOT NULL`))
|
|
18
|
+
.where(and(eq(agentImageSettings.id, 1), eq(agentImages.status, "ready"), isNull(agentImages.deletedAt), sql `${agentImages.dockerImageId} IS NOT NULL`))
|
|
19
19
|
.limit(1);
|
|
20
20
|
return image?.dockerImageId
|
|
21
21
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageGetReadyDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetReadyDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageGetReadyDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageGetReadyDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,QAAyB;IAEzB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ;SACzB,MAAM,CAAC;QACJ,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,aAAa,EAAE,WAAW,CAAC,aAAa;KAC3C,CAAC;SACD,IAAI,CAAC,kBAAkB,CAAC;SACxB,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;SAC7E,KAAK,CACF,GAAG,CACC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,EAC5B,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAC7B,GAAG,CAAA,GAAG,WAAW,CAAC,aAAa,cAAc,CAChD,CACJ;SACA,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,OAAO,KAAK,EAAE,aAAa;QACvB,CAAC,CAAC;YACI,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;SACrC;QACH,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageList.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAOrD;;;GAGG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC,
|
|
1
|
+
{"version":3,"file":"agentImageList.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAOrD;;;GAGG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;IACP,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC,CA4BD"}
|
|
@@ -3,7 +3,7 @@ import {} from "../drizzle.js";
|
|
|
3
3
|
import { agentImageSelection } from "./impl/agentImageSelection.js";
|
|
4
4
|
import { agentImages, agentImageSettings } from "../schema.js";
|
|
5
5
|
import { asAgentImage } from "./impl/asAgentImage.js";
|
|
6
|
-
import { eq } from "drizzle-orm";
|
|
6
|
+
import { eq, isNull } from "drizzle-orm";
|
|
7
7
|
import { userRequireAnyPermission } from "../permission/userRequireAnyPermission.js";
|
|
8
8
|
/**
|
|
9
9
|
* Lists agent images and the configured default to a caller allowed to manage images, assign them to chats, or select a runtime for plugin installation.
|
|
@@ -26,6 +26,7 @@ export async function agentImageList(executor, actorUserId) {
|
|
|
26
26
|
executor
|
|
27
27
|
.select(agentImageSelection)
|
|
28
28
|
.from(agentImages)
|
|
29
|
+
.where(isNull(agentImages.deletedAt))
|
|
29
30
|
.orderBy(agentImages.createdAt, agentImages.id),
|
|
30
31
|
]);
|
|
31
32
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageList.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,QAAyB,EACzB,WAAmB;IAKnB,MAAM,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE;QAClD,cAAc;QACd,qBAAqB;QACrB,eAAe;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ;aACH,MAAM,CAAC;YACJ,cAAc,EAAE,kBAAkB,CAAC,cAAc;SACpD,CAAC;aACD,IAAI,CAAC,kBAAkB,CAAC;aACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC,mBAAmB,CAAC;aAC3B,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACpC,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,OAAO;QACH,GAAG,CAAC,QAAQ,EAAE,cAAc;YACxB,CAAC,CAAC;gBACI,cAAc,EAAE,QAAQ,CAAC,cAAc;aAC1C;YACH,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;KACnC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DrizzleExecutor } from "../drizzle.js";
|
|
2
|
+
export interface AgentEnvironmentHostSummary {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
status: "pending" | "building" | "ready" | "failed";
|
|
6
|
+
builtin: boolean;
|
|
7
|
+
active: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Lists the non-sensitive agent environment projection exposed after plugin-host capability authorization.
|
|
11
|
+
* Keeping Dockerfiles out of the catalog preserves their focused per-manifest read operation and keeps list responses bounded.
|
|
12
|
+
*/
|
|
13
|
+
export declare function agentImageListForHost(executor: DrizzleExecutor): Promise<{
|
|
14
|
+
defaultEnvironmentId?: string;
|
|
15
|
+
environments: AgentEnvironmentHostSummary[];
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=agentImageListForHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentImageListForHost.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListForHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,WAAW,2BAA2B;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC;IAC5E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,EAAE,2BAA2B,EAAE,CAAC;CAC/C,CAAC,CA8BD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { eq } from "drizzle-orm";
|
|
2
|
+
import { agentImages, agentImageSettings } from "../schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Lists the non-sensitive agent environment projection exposed after plugin-host capability authorization.
|
|
5
|
+
* Keeping Dockerfiles out of the catalog preserves their focused per-manifest read operation and keeps list responses bounded.
|
|
6
|
+
*/
|
|
7
|
+
export async function agentImageListForHost(executor) {
|
|
8
|
+
const [settings, images] = await Promise.all([
|
|
9
|
+
executor
|
|
10
|
+
.select({ defaultEnvironmentId: agentImageSettings.defaultImageId })
|
|
11
|
+
.from(agentImageSettings)
|
|
12
|
+
.where(eq(agentImageSettings.id, 1))
|
|
13
|
+
.then((rows) => rows[0]),
|
|
14
|
+
executor
|
|
15
|
+
.select({
|
|
16
|
+
id: agentImages.id,
|
|
17
|
+
name: agentImages.name,
|
|
18
|
+
status: agentImages.status,
|
|
19
|
+
builtinKey: agentImages.builtinKey,
|
|
20
|
+
deletedAt: agentImages.deletedAt,
|
|
21
|
+
})
|
|
22
|
+
.from(agentImages)
|
|
23
|
+
.orderBy(agentImages.createdAt, agentImages.id),
|
|
24
|
+
]);
|
|
25
|
+
return {
|
|
26
|
+
...(settings?.defaultEnvironmentId
|
|
27
|
+
? { defaultEnvironmentId: settings.defaultEnvironmentId }
|
|
28
|
+
: {}),
|
|
29
|
+
environments: images.map((image) => ({
|
|
30
|
+
id: image.id,
|
|
31
|
+
name: image.name,
|
|
32
|
+
status: image.status,
|
|
33
|
+
builtin: image.builtinKey !== null,
|
|
34
|
+
active: image.deletedAt === null,
|
|
35
|
+
})),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=agentImageListForHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentImageListForHost.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListForHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAU/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAyB;IAIjE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,QAAQ;aACH,MAAM,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,cAAc,EAAE,CAAC;aACnE,IAAI,CAAC,kBAAkB,CAAC;aACxB,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ;aACH,MAAM,CAAC;YACJ,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,SAAS,EAAE,WAAW,CAAC,SAAS;SACnC,CAAC;aACD,IAAI,CAAC,WAAW,CAAC;aACjB,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,OAAO;QACH,GAAG,CAAC,QAAQ,EAAE,oBAAoB;YAC9B,CAAC,CAAC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;QACT,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAA+C;YAC7D,OAAO,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI;YAClC,MAAM,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;SACnC,CAAC,CAAC;KACN,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageListRequestedBuildIds.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListRequestedBuildIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD;;;GAGG;AACH,wBAAsB,+BAA+B,CACjD,QAAQ,EAAE,eAAe,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"agentImageListRequestedBuildIds.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListRequestedBuildIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD;;;GAGG;AACH,wBAAsB,+BAA+B,CACjD,QAAQ,EAAE,eAAe,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {} from "../drizzle.js";
|
|
2
2
|
import { agentImages } from "../schema.js";
|
|
3
|
-
import { and, eq, or, sql } from "drizzle-orm";
|
|
3
|
+
import { and, eq, isNull, or, sql } from "drizzle-orm";
|
|
4
4
|
/**
|
|
5
5
|
* Lists images with requested pending work or any in-progress build, ordered by request and creation time.
|
|
6
6
|
* Including live leases lets a restarted worker schedule a claim for their expiry instead of leaving crash-interrupted builds stranded.
|
|
@@ -11,7 +11,7 @@ export async function agentImageListRequestedBuildIds(executor) {
|
|
|
11
11
|
id: agentImages.id,
|
|
12
12
|
})
|
|
13
13
|
.from(agentImages)
|
|
14
|
-
.where(and(or(and(eq(agentImages.status, "pending"), sql `${agentImages.buildRequestedAt} IS NOT NULL`), eq(agentImages.status, "building"))))
|
|
14
|
+
.where(and(isNull(agentImages.deletedAt), or(and(eq(agentImages.status, "pending"), sql `${agentImages.buildRequestedAt} IS NOT NULL`), eq(agentImages.status, "building"))))
|
|
15
15
|
.orderBy(agentImages.buildRequestedAt, agentImages.createdAt, agentImages.id);
|
|
16
16
|
return rows.map((row) => row.id);
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageListRequestedBuildIds.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListRequestedBuildIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageListRequestedBuildIds.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageListRequestedBuildIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACjD,QAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,QAAQ;SACtB,MAAM,CAAC;QACJ,EAAE,EAAE,WAAW,CAAC,EAAE;KACrB,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CACF,GAAG,CACC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAC7B,EAAE,CACE,GAAG,CACC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,GAAG,CAAA,GAAG,WAAW,CAAC,gBAAgB,cAAc,CACnD,EACD,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CACrC,CACJ,CACJ;SACA,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { CollaborationError } from "../chat/types.js";
|
|
|
2
2
|
import { withTransaction } from "../drizzle.js";
|
|
3
3
|
import { agentImageSelection } from "./impl/agentImageSelection.js";
|
|
4
4
|
import { agentImages } from "../schema.js";
|
|
5
|
-
import { eq, sql } from "drizzle-orm";
|
|
5
|
+
import { and, eq, isNull, sql } from "drizzle-orm";
|
|
6
6
|
import { areaHint } from "../chat/areaHint.js";
|
|
7
7
|
import { asAgentImage } from "./impl/asAgentImage.js";
|
|
8
8
|
import { chatAppendAudit } from "../chat/chatAppendAudit.js";
|
|
@@ -21,7 +21,7 @@ export async function agentImageRequestBuild(executor, input) {
|
|
|
21
21
|
status: agentImages.status,
|
|
22
22
|
})
|
|
23
23
|
.from(agentImages)
|
|
24
|
-
.where(eq(agentImages.id, input.imageId))
|
|
24
|
+
.where(and(eq(agentImages.id, input.imageId), isNull(agentImages.deletedAt)))
|
|
25
25
|
.limit(1);
|
|
26
26
|
if (!current)
|
|
27
27
|
throw new CollaborationError("not_found", "Agent image was not found");
|
|
@@ -47,7 +47,7 @@ export async function agentImageRequestBuild(executor, input) {
|
|
|
47
47
|
leaseExpiresAt: null,
|
|
48
48
|
updatedAt: sql `CURRENT_TIMESTAMP`,
|
|
49
49
|
})
|
|
50
|
-
.where(eq(agentImages.id, input.imageId))
|
|
50
|
+
.where(and(eq(agentImages.id, input.imageId), isNull(agentImages.deletedAt)))
|
|
51
51
|
.returning(agentImageSelection);
|
|
52
52
|
if (!image)
|
|
53
53
|
throw new Error("Agent image build was not requested");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageRequestBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageRequestBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageRequestBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageRequestBuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type AgentImageSummary, type MutationHint } from "../chat/types.js";
|
|
2
2
|
import { type DrizzleExecutor } from "../drizzle.js";
|
|
3
3
|
/**
|
|
4
|
-
* Selects a ready image in agentImageSettings
|
|
5
|
-
* Coupling the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
|
|
4
|
+
* Selects a ready image in agentImageSettings for a manageImages user or capability-authorized plugin installation.
|
|
5
|
+
* Coupling installation provenance and the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
|
|
6
6
|
*/
|
|
7
7
|
export declare function agentImageSetDefault(executor: DrizzleExecutor, input: {
|
|
8
|
-
|
|
8
|
+
actorInstallationId?: string;
|
|
9
|
+
actorUserId?: string;
|
|
9
10
|
imageId: string;
|
|
10
11
|
}): Promise<{
|
|
11
12
|
hint: MutationHint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageSetDefault.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAsB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,eAAe,CAAC;AActE;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageSetDefault.d.ts","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAsB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,eAAe,CAAC;AActE;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACnB,GACF,OAAO,CAAC;IACP,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;CAC5B,CAAC,CA2CD"}
|
|
@@ -2,7 +2,7 @@ import { CollaborationError } from "../chat/types.js";
|
|
|
2
2
|
import { withTransaction } from "../drizzle.js";
|
|
3
3
|
import { agentImageSelection } from "./impl/agentImageSelection.js";
|
|
4
4
|
import { agentImages, agentImageSettings } from "../schema.js";
|
|
5
|
-
import { eq, sql } from "drizzle-orm";
|
|
5
|
+
import { and, eq, isNull, sql } from "drizzle-orm";
|
|
6
6
|
import { areaHint } from "../chat/areaHint.js";
|
|
7
7
|
import { asAgentImage } from "./impl/asAgentImage.js";
|
|
8
8
|
import { chatAppendAudit } from "../chat/chatAppendAudit.js";
|
|
@@ -10,16 +10,19 @@ import { syncEventInsert } from "../sync/syncEventInsert.js";
|
|
|
10
10
|
import { syncSequenceNext } from "../sync/syncSequenceNext.js";
|
|
11
11
|
import { userRequirePermission } from "../permission/userRequirePermission.js";
|
|
12
12
|
/**
|
|
13
|
-
* Selects a ready image in agentImageSettings
|
|
14
|
-
* Coupling the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
|
|
13
|
+
* Selects a ready image in agentImageSettings for a manageImages user or capability-authorized plugin installation.
|
|
14
|
+
* Coupling installation provenance and the setting with sync and audit records prevents clients from seeing an unexplained default-image change.
|
|
15
15
|
*/
|
|
16
16
|
export async function agentImageSetDefault(executor, input) {
|
|
17
17
|
return withTransaction(executor, async (tx) => {
|
|
18
|
-
|
|
18
|
+
if (input.actorUserId)
|
|
19
|
+
await userRequirePermission(tx, input.actorUserId, "manageImages");
|
|
20
|
+
else if (!input.actorInstallationId)
|
|
21
|
+
throw new CollaborationError("forbidden", "Agent image management authority is required");
|
|
19
22
|
const [image] = await tx
|
|
20
23
|
.select(agentImageSelection)
|
|
21
24
|
.from(agentImages)
|
|
22
|
-
.where(eq(agentImages.id, input.imageId))
|
|
25
|
+
.where(and(eq(agentImages.id, input.imageId), isNull(agentImages.deletedAt)))
|
|
23
26
|
.limit(1);
|
|
24
27
|
if (!image)
|
|
25
28
|
throw new CollaborationError("not_found", "Agent image was not found");
|
|
@@ -29,7 +32,7 @@ export async function agentImageSetDefault(executor, input) {
|
|
|
29
32
|
.update(agentImageSettings)
|
|
30
33
|
.set({
|
|
31
34
|
defaultImageId: input.imageId,
|
|
32
|
-
updatedByUserId: input.actorUserId,
|
|
35
|
+
updatedByUserId: input.actorUserId ?? null,
|
|
33
36
|
updatedAt: sql `CURRENT_TIMESTAMP`,
|
|
34
37
|
})
|
|
35
38
|
.where(eq(agentImageSettings.id, 1));
|
|
@@ -38,6 +41,7 @@ export async function agentImageSetDefault(executor, input) {
|
|
|
38
41
|
action: "agent_image.default_selected",
|
|
39
42
|
targetType: "agent_image",
|
|
40
43
|
targetId: input.imageId,
|
|
44
|
+
after: { actorInstallationId: input.actorInstallationId },
|
|
41
45
|
});
|
|
42
46
|
const sequence = await syncSequenceNext(tx);
|
|
43
47
|
await syncEventInsert(tx, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageSetDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageSetDefault.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageSetDefault.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export async function agentImageTakeBuild(executor, imageId, workerId) {
|
|
|
31
31
|
leaseExpiresAt,
|
|
32
32
|
updatedAt: sql `CURRENT_TIMESTAMP`,
|
|
33
33
|
})
|
|
34
|
-
.where(and(eq(agentImages.id, imageId), claimable))
|
|
34
|
+
.where(and(eq(agentImages.id, imageId), isNull(agentImages.deletedAt), claimable))
|
|
35
35
|
.returning({
|
|
36
36
|
id: agentImages.id,
|
|
37
37
|
buildContext: agentImages.buildContext,
|
|
@@ -45,7 +45,7 @@ export async function agentImageTakeBuild(executor, imageId, workerId) {
|
|
|
45
45
|
status: agentImages.status,
|
|
46
46
|
})
|
|
47
47
|
.from(agentImages)
|
|
48
|
-
.where(eq(agentImages.id, imageId))
|
|
48
|
+
.where(and(eq(agentImages.id, imageId), isNull(agentImages.deletedAt)))
|
|
49
49
|
.limit(1);
|
|
50
50
|
if (leased?.status === "building" &&
|
|
51
51
|
leased.leaseExpiresAt &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentImageTakeBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageTakeBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAyB,EACzB,OAAe,EACf,QAAgB;IAWhB,OAAO,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,EAAE,CAChB,GAAG,CACC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,GAAG,CAAA,GAAG,WAAW,CAAC,gBAAgB,cAAc,CACnD,EACD,GAAG,CACC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAClC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAC/E,CACJ,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;aACrB,MAAM,CAAC,WAAW,CAAC;aACnB,GAAG,CAAC;YACD,MAAM,EAAE,UAAU;YAClB,YAAY,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,YAAY,MAAM;YAClD,aAAa,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,aAAa,aAAa;YAC7G,QAAQ,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,QAAQ,cAAc;YACpG,iBAAiB,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,iBAAiB,aAAa;YACrH,gBAAgB,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,gBAAgB,gBAAgB;YACtH,iBAAiB,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,iBAAiB,6BAA6B;YACrI,cAAc,EAAE,GAAG,CAAA,aAAa,WAAW,CAAC,MAAM,sBAAsB,WAAW,CAAC,cAAc,6BAA6B;YAC/H,SAAS,EAAE,IAAI;YACf,QAAQ;YACR,cAAc;YACd,SAAS,EAAE,GAAG,CAAA,mBAAmB;SACpC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agentImageTakeBuild.js","sourceRoot":"","sources":["../../../sources/modules/agent/agentImageTakeBuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { DurableSkillDefinition, ProtocolSession, SubagentSummary, RegisterSecretRequest, ResolveExternalToolCallResponse, SecretSummary } from "@slopus/rig/dist/protocol/index.js";
|
|
2
2
|
import type { ExternalToolCall, ExternalToolCallResolution, ExternalToolDefinition } from "@slopus/rig/dist/external-tools/index.js";
|
|
3
|
+
import type { CreateRemoteTerminalRequest, RemoteTerminalFrame, ResizeRemoteTerminalRequest } from "@slopus/rig/dist/terminal/index.js";
|
|
3
4
|
export interface RigDaemonConfig {
|
|
4
5
|
directory: string;
|
|
5
6
|
socketPath: string;
|
|
@@ -113,6 +114,12 @@ export declare class RigDaemonClient {
|
|
|
113
114
|
listSecrets(signal?: AbortSignal): Promise<readonly RigSecretSummary[]>;
|
|
114
115
|
registerSecret(secret: RigSecretRegistration, signal?: AbortSignal): Promise<RigSecretSummary>;
|
|
115
116
|
unregisterSecret(secretId: string, signal?: AbortSignal): Promise<boolean>;
|
|
117
|
+
createRemoteTerminal(sessionId: string, dimensions: CreateRemoteTerminalRequest, signal?: AbortSignal): Promise<RemoteTerminalFrame>;
|
|
118
|
+
getRemoteTerminal(sessionId: string, terminalId: string, signal?: AbortSignal): Promise<RemoteTerminalFrame>;
|
|
119
|
+
resizeRemoteTerminal(sessionId: string, terminalId: string, dimensions: ResizeRemoteTerminalRequest, signal?: AbortSignal): Promise<RemoteTerminalFrame>;
|
|
120
|
+
writeRemoteTerminal(sessionId: string, terminalId: string, data: string, signal?: AbortSignal): Promise<void>;
|
|
121
|
+
stopRemoteTerminal(sessionId: string, terminalId: string, signal?: AbortSignal): Promise<RemoteTerminalFrame>;
|
|
122
|
+
watchRemoteTerminal(sessionId: string, terminalId: string, after: number | undefined, onFrame: (frame: RemoteTerminalFrame) => Promise<void>, signal?: AbortSignal): Promise<void>;
|
|
116
123
|
reconcileSessionSecrets(sessionId: string, loadPlan: () => Promise<RigSessionSecretPlan>, signal?: AbortSignal): Promise<void>;
|
|
117
124
|
watchGlobalEvents(after: number | undefined, onEvent: (event: RigGlobalEvent) => Promise<void>, signal?: AbortSignal): Promise<void>;
|
|
118
125
|
watchSessionEvents(sessionId: string, after: string | undefined, onEvent: (event: RigEvent) => Promise<void>, signal?: AbortSignal): Promise<string | undefined>;
|
|
@@ -140,7 +147,12 @@ export declare class RigDaemonClient {
|
|
|
140
147
|
private request;
|
|
141
148
|
private stream;
|
|
142
149
|
private sessionStream;
|
|
150
|
+
private remoteTerminalStream;
|
|
143
151
|
}
|
|
144
152
|
export declare function isRetryableRigError(error: unknown): boolean;
|
|
153
|
+
export declare class RigHttpError extends Error {
|
|
154
|
+
readonly status: number;
|
|
155
|
+
constructor(status: number, message: string);
|
|
156
|
+
}
|
|
145
157
|
export {};
|
|
146
158
|
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../sources/modules/agents/daemon.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAMR,sBAAsB,EAKtB,eAAe,EACf,eAAe,EACf,qBAAqB,EAGrB,+BAA+B,EAC/B,aAAa,EAMhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACzB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../sources/modules/agents/daemon.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAMR,sBAAsB,EAKtB,eAAe,EACf,eAAe,EACf,qBAAqB,EAGrB,+BAA+B,EAC/B,aAAa,EAMhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACR,2BAA2B,EAC3B,mBAAmB,EAEnB,2BAA2B,EAC9B,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,UAAU;IAChB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,QAAQ;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/F,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACF,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,OAAO,CAAC,EAAE,UAAU,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,kBAAkB,CAAC;KACjC,CAAC;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACvB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAExC,qBAAa,eAAe;IAKZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAoC;IACjF,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,KAAK,CAAC,CAAgB;IAE9B,YAA6B,MAAM,EAAE,eAAe,EAAI;IAElD,sBAAsB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;IAEK,aAAa,CACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAgBzC;IAEK,mBAAmB,CACrB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAEjC;IAEK,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAQjC;IAEK,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF;IAEK,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAQ5E;IAEK,cAAc,CAChB,MAAM,EAAE,qBAAqB,EAC7B,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;IAEK,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/E;IAEK,oBAAoB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,2BAA2B,EACvC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;IAEK,iBAAiB,CACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;IAEK,oBAAoB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,2BAA2B,EACvC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;IAEK,mBAAmB,CACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;IAEK,kBAAkB,CACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;IAEK,mBAAmB,CACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EACtD,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAIf;IAEK,uBAAuB,CACzB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAoCf;IAEK,iBAAiB,CACnB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAsBf;IAEK,kBAAkB,CACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,EAC3C,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;IAEK,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;IAEK,iBAAiB,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAMzD;IAEK,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC;QACP,mBAAmB,EAAE,SAAS,oBAAoB,EAAE,CAAC;QACrD,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;KAC5C,CAAC,CAcD;IAEK,qBAAqB,CACvB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAOjB;IAEK,WAAW,CACb,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;IAEK,UAAU,CACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,SAAS,sBAAsB,EAAE,EAChD,MAAM,EAAE,SAAS,sBAAsB,EAAE,EACzC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAO7C;IAEK,uBAAuB,CACzB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,0BAA0B,EACtC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,+BAA+B,CAAC,CAO1C;IAED,OAAO,CAAC,OAAO;YASD,gBAAgB;IAqB9B,OAAO,CAAC,WAAW;YAUL,OAAO;YAoBP,OAAO;IASrB,OAAO,CAAC,OAAO;IAmFf,OAAO,CAAC,MAAM;IAuEd,OAAO,CAAC,aAAa;IAwErB,OAAO,CAAC,oBAAoB;CA+C/B;AAmHD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3D;AAsDD,qBAAa,YAAa,SAAQ,KAAK;IAE/B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAD3B,YACa,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIlB;CACJ"}
|
|
@@ -54,6 +54,30 @@ export class RigDaemonClient {
|
|
|
54
54
|
const response = await this.connectedRequest("DELETE", `/secrets/${encodeURIComponent(secretId)}`, undefined, signal);
|
|
55
55
|
return response.removed;
|
|
56
56
|
}
|
|
57
|
+
async createRemoteTerminal(sessionId, dimensions, signal) {
|
|
58
|
+
const response = await this.connectedRequest("POST", `/sessions/${encodeURIComponent(sessionId)}/terminals`, dimensions, signal);
|
|
59
|
+
return response.terminal;
|
|
60
|
+
}
|
|
61
|
+
async getRemoteTerminal(sessionId, terminalId, signal) {
|
|
62
|
+
const response = await this.connectedRequest("GET", remoteTerminalPath(sessionId, terminalId), undefined, signal);
|
|
63
|
+
return response.terminal;
|
|
64
|
+
}
|
|
65
|
+
async resizeRemoteTerminal(sessionId, terminalId, dimensions, signal) {
|
|
66
|
+
const response = await this.connectedRequest("PATCH", remoteTerminalPath(sessionId, terminalId), dimensions, signal);
|
|
67
|
+
return response.terminal;
|
|
68
|
+
}
|
|
69
|
+
async writeRemoteTerminal(sessionId, terminalId, data, signal) {
|
|
70
|
+
await this.connectedRequest("POST", `${remoteTerminalPath(sessionId, terminalId)}/input`, { data }, signal);
|
|
71
|
+
}
|
|
72
|
+
async stopRemoteTerminal(sessionId, terminalId, signal) {
|
|
73
|
+
const response = await this.connectedRequest("DELETE", remoteTerminalPath(sessionId, terminalId), undefined, signal);
|
|
74
|
+
return response.terminal;
|
|
75
|
+
}
|
|
76
|
+
async watchRemoteTerminal(sessionId, terminalId, after, onFrame, signal) {
|
|
77
|
+
const path = `${remoteTerminalPath(sessionId, terminalId)}/stream${after === undefined ? "" : `?after=${after}`}`;
|
|
78
|
+
await this.ensureReady();
|
|
79
|
+
await this.remoteTerminalStream(path, onFrame, signal);
|
|
80
|
+
}
|
|
57
81
|
async reconcileSessionSecrets(sessionId, loadPlan, signal) {
|
|
58
82
|
const previous = this.sessionSecretReconciliations.get(sessionId) ?? Promise.resolve();
|
|
59
83
|
const reconciliation = previous
|
|
@@ -392,6 +416,69 @@ export class RigDaemonClient {
|
|
|
392
416
|
request.end();
|
|
393
417
|
});
|
|
394
418
|
}
|
|
419
|
+
remoteTerminalStream(path, onFrame, signal) {
|
|
420
|
+
if (!this.token)
|
|
421
|
+
return Promise.reject(new RigTransportError("Rig daemon token is unavailable."));
|
|
422
|
+
if (signal?.aborted)
|
|
423
|
+
return Promise.resolve();
|
|
424
|
+
return new Promise((resolve, reject) => {
|
|
425
|
+
const request = httpRequest({
|
|
426
|
+
socketPath: this.config.socketPath,
|
|
427
|
+
method: "GET",
|
|
428
|
+
path,
|
|
429
|
+
headers: {
|
|
430
|
+
accept: "text/event-stream",
|
|
431
|
+
authorization: `Bearer ${this.token}`,
|
|
432
|
+
},
|
|
433
|
+
}, (response) => {
|
|
434
|
+
if ((response.statusCode ?? 500) >= 400) {
|
|
435
|
+
response.resume();
|
|
436
|
+
reject(new RigHttpError(response.statusCode ?? 500, "Rig terminal stream failed."));
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
response.setEncoding("utf8");
|
|
440
|
+
void consumeRemoteTerminalStream(response, onFrame, signal).then(resolve, reject);
|
|
441
|
+
});
|
|
442
|
+
const abort = () => request.destroy(shutdownError());
|
|
443
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
444
|
+
request.once("close", () => signal?.removeEventListener("abort", abort));
|
|
445
|
+
request.on("error", (error) => {
|
|
446
|
+
if (signal?.aborted)
|
|
447
|
+
resolve();
|
|
448
|
+
else
|
|
449
|
+
reject(asTransportError(error));
|
|
450
|
+
});
|
|
451
|
+
request.end();
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
function remoteTerminalPath(sessionId, terminalId) {
|
|
456
|
+
return `/sessions/${encodeURIComponent(sessionId)}/terminals/${encodeURIComponent(terminalId)}`;
|
|
457
|
+
}
|
|
458
|
+
async function consumeRemoteTerminalStream(response, onFrame, signal) {
|
|
459
|
+
let buffer = "";
|
|
460
|
+
for await (const chunk of response) {
|
|
461
|
+
if (signal?.aborted)
|
|
462
|
+
return;
|
|
463
|
+
buffer += chunk.toString();
|
|
464
|
+
for (;;) {
|
|
465
|
+
const boundary = buffer.indexOf("\n\n");
|
|
466
|
+
if (boundary < 0)
|
|
467
|
+
break;
|
|
468
|
+
const event = buffer.slice(0, boundary);
|
|
469
|
+
buffer = buffer.slice(boundary + 2);
|
|
470
|
+
if (event.startsWith(":"))
|
|
471
|
+
continue;
|
|
472
|
+
const data = event
|
|
473
|
+
.split("\n")
|
|
474
|
+
.filter((line) => line.startsWith("data:"))
|
|
475
|
+
.map((line) => line.slice(5).trimStart())
|
|
476
|
+
.join("\n");
|
|
477
|
+
if (!data)
|
|
478
|
+
continue;
|
|
479
|
+
await onFrame(JSON.parse(data));
|
|
480
|
+
}
|
|
481
|
+
}
|
|
395
482
|
}
|
|
396
483
|
async function consumeGlobalEventStream(response, onEvent, signal) {
|
|
397
484
|
let buffer = "";
|
|
@@ -535,7 +622,7 @@ function rigError(contents, status) {
|
|
|
535
622
|
}
|
|
536
623
|
return contents || `Rig daemon returned HTTP ${status ?? 500}.`;
|
|
537
624
|
}
|
|
538
|
-
class RigHttpError extends Error {
|
|
625
|
+
export class RigHttpError extends Error {
|
|
539
626
|
status;
|
|
540
627
|
constructor(status, message) {
|
|
541
628
|
super(message);
|