@nextclaw/server 0.20.4 → 0.21.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/dist/index.d.ts +3102 -737
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +403 -5
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -2156,6 +2156,81 @@ var AppPackagesRoutesController = class {
|
|
|
2156
2156
|
return this.handleError(c, error);
|
|
2157
2157
|
}
|
|
2158
2158
|
};
|
|
2159
|
+
inspectDependencies = async (c) => {
|
|
2160
|
+
try {
|
|
2161
|
+
return c.json(ok(await this.manager.inspectDependencies(c.req.param("appId"))));
|
|
2162
|
+
} catch (error) {
|
|
2163
|
+
return this.handleError(c, error);
|
|
2164
|
+
}
|
|
2165
|
+
};
|
|
2166
|
+
verifyDependencies = async (c) => {
|
|
2167
|
+
try {
|
|
2168
|
+
return c.json(ok(await this.manager.verifyDependencies(c.req.param("appId"))));
|
|
2169
|
+
} catch (error) {
|
|
2170
|
+
return this.handleError(c, error);
|
|
2171
|
+
}
|
|
2172
|
+
};
|
|
2173
|
+
setupDependencies = async (c) => {
|
|
2174
|
+
try {
|
|
2175
|
+
return c.json(ok(await this.manager.setupDependencies(c.req.param("appId"))));
|
|
2176
|
+
} catch (error) {
|
|
2177
|
+
return this.handleError(c, error);
|
|
2178
|
+
}
|
|
2179
|
+
};
|
|
2180
|
+
bindDependency = async (c) => {
|
|
2181
|
+
const body = await readJson(c.req.raw);
|
|
2182
|
+
const input = body.ok ? readDependencyBinding(body.data, true) : void 0;
|
|
2183
|
+
if (!input) return c.json(err("INVALID_APP_PACKAGE_DEPENDENCY", "binding fields are required"), 400);
|
|
2184
|
+
try {
|
|
2185
|
+
return c.json(ok(await this.manager.bindDependency(c.req.param("appId"), input)));
|
|
2186
|
+
} catch (error) {
|
|
2187
|
+
return this.handleError(c, error);
|
|
2188
|
+
}
|
|
2189
|
+
};
|
|
2190
|
+
unbindDependency = async (c) => {
|
|
2191
|
+
const body = await readJson(c.req.raw);
|
|
2192
|
+
const input = body.ok ? readDependencyBinding(body.data, false) : void 0;
|
|
2193
|
+
if (!input) return c.json(err("INVALID_APP_PACKAGE_DEPENDENCY", "binding fields are required"), 400);
|
|
2194
|
+
try {
|
|
2195
|
+
return c.json(ok(await this.manager.unbindDependency(c.req.param("appId"), input)));
|
|
2196
|
+
} catch (error) {
|
|
2197
|
+
return this.handleError(c, error);
|
|
2198
|
+
}
|
|
2199
|
+
};
|
|
2200
|
+
inspectSecrets = async (c) => {
|
|
2201
|
+
try {
|
|
2202
|
+
return c.json(ok(await this.manager.inspectSecrets(c.req.param("appId"))));
|
|
2203
|
+
} catch (error) {
|
|
2204
|
+
return this.handleError(c, error);
|
|
2205
|
+
}
|
|
2206
|
+
};
|
|
2207
|
+
verifySecrets = async (c) => {
|
|
2208
|
+
try {
|
|
2209
|
+
return c.json(ok(await this.manager.verifySecrets(c.req.param("appId"))));
|
|
2210
|
+
} catch (error) {
|
|
2211
|
+
return this.handleError(c, error);
|
|
2212
|
+
}
|
|
2213
|
+
};
|
|
2214
|
+
bindSecret = async (c) => {
|
|
2215
|
+
const body = await readJson(c.req.raw);
|
|
2216
|
+
const input = body.ok ? readSecretBinding(body.data) : void 0;
|
|
2217
|
+
if (!input) return c.json(err("INVALID_APP_SECRET_BINDING", "slotId, source, and id are required"), 400);
|
|
2218
|
+
try {
|
|
2219
|
+
return c.json(ok(await this.manager.bindSecret(c.req.param("appId"), input)));
|
|
2220
|
+
} catch (error) {
|
|
2221
|
+
return this.handleError(c, error);
|
|
2222
|
+
}
|
|
2223
|
+
};
|
|
2224
|
+
unbindSecret = async (c) => {
|
|
2225
|
+
const body = await readJson(c.req.raw);
|
|
2226
|
+
const slotId = body.ok && isRecord$3(body.data) && typeof body.data.slotId === "string" ? body.data.slotId.trim() : "";
|
|
2227
|
+
if (!slotId) return c.json(err("INVALID_APP_SECRET_BINDING", "slotId is required"), 400);
|
|
2228
|
+
try {
|
|
2229
|
+
return c.json(ok(await this.manager.unbindSecret(c.req.param("appId"), slotId)));
|
|
2230
|
+
} catch (error) {
|
|
2231
|
+
return this.handleError(c, error);
|
|
2232
|
+
}
|
|
2233
|
+
};
|
|
2159
2234
|
install = async (c) => {
|
|
2160
2235
|
const body = await readJson(c.req.raw);
|
|
2161
2236
|
if (!body.ok || !isRecord$3(body.data) || typeof body.data.source !== "string") return c.json(err("INVALID_APP_PACKAGE_INSTALL", "source is required"), 400);
|
|
@@ -2211,12 +2286,36 @@ var AppPackagesRoutesController = class {
|
|
|
2211
2286
|
};
|
|
2212
2287
|
handleError = (c, error) => {
|
|
2213
2288
|
if (isAppPackageError(error)) {
|
|
2214
|
-
const status = error.code === "APP_PACKAGE_NOT_FOUND" ? 404 : error.code === "APP_PACKAGE_CONFLICT" ? 409 : 400;
|
|
2289
|
+
const status = error.code === "APP_PACKAGE_NOT_FOUND" ? 404 : error.code === "APP_PACKAGE_CONFLICT" || error.code === "APP_PACKAGE_NOT_READY" || error.code === "SECRET_BINDING_MISSING" || error.code === "SECRET_RESOLUTION_FAILED" ? 409 : 400;
|
|
2215
2290
|
return c.json(err(error.code, error.message), status);
|
|
2216
2291
|
}
|
|
2217
2292
|
return c.json(err("APP_PACKAGE_OPERATION_FAILED", error instanceof Error ? error.message : String(error)), 400);
|
|
2218
2293
|
};
|
|
2219
2294
|
};
|
|
2295
|
+
function readDependencyBinding(value, requireProvider) {
|
|
2296
|
+
if (!isRecord$3(value) || typeof value.componentId !== "string" || !value.componentId.trim() || !["capability", "resource"].includes(String(value.requirementKind)) || typeof value.requirementId !== "string" || !value.requirementId.trim() || requireProvider && (typeof value.providerId !== "string" || !value.providerId.trim())) return;
|
|
2297
|
+
return {
|
|
2298
|
+
componentId: value.componentId,
|
|
2299
|
+
requirementKind: value.requirementKind,
|
|
2300
|
+
requirementId: value.requirementId,
|
|
2301
|
+
...requireProvider ? { providerId: value.providerId } : {}
|
|
2302
|
+
};
|
|
2303
|
+
}
|
|
2304
|
+
function readSecretBinding(value) {
|
|
2305
|
+
if (!isRecord$3(value) || typeof value.slotId !== "string" || !value.slotId.trim() || ![
|
|
2306
|
+
"env",
|
|
2307
|
+
"file",
|
|
2308
|
+
"exec"
|
|
2309
|
+
].includes(String(value.source)) || typeof value.id !== "string" || !value.id.trim() || value.provider !== void 0 && (typeof value.provider !== "string" || !value.provider.trim())) return;
|
|
2310
|
+
return {
|
|
2311
|
+
slotId: value.slotId.trim(),
|
|
2312
|
+
binding: {
|
|
2313
|
+
source: value.source,
|
|
2314
|
+
provider: typeof value.provider === "string" ? value.provider.trim() : void 0,
|
|
2315
|
+
id: value.id.trim()
|
|
2316
|
+
}
|
|
2317
|
+
};
|
|
2318
|
+
}
|
|
2220
2319
|
//#endregion
|
|
2221
2320
|
//#region src/features/app-data/controllers/app-data.controller.ts
|
|
2222
2321
|
var AppDataRoutesController = class {
|
|
@@ -6741,8 +6840,17 @@ function statusForServiceAppError(code) {
|
|
|
6741
6840
|
case "AUTHORIZATION_REQUIRED": return 401;
|
|
6742
6841
|
case "SERVICE_APP_ACTION_NOT_DECLARED": return 403;
|
|
6743
6842
|
case "SERVICE_APP_ACTION_NOT_FOUND":
|
|
6744
|
-
case "SERVICE_APP_NOT_FOUND":
|
|
6745
|
-
case "
|
|
6843
|
+
case "SERVICE_APP_NOT_FOUND":
|
|
6844
|
+
case "SERVICE_APP_JOB_NOT_FOUND":
|
|
6845
|
+
case "SERVICE_APP_RESIDENT_EVENT_NOT_FOUND": return 404;
|
|
6846
|
+
case "SERVICE_APP_RUNTIME_FAILED":
|
|
6847
|
+
case "WASI_ABI_VERSION_MISMATCH":
|
|
6848
|
+
case "WASI_COMPONENT_FAILED":
|
|
6849
|
+
case "WASI_COMPONENT_TRAP":
|
|
6850
|
+
case "WASI_GUEST_EXPORT_MISSING": return 502;
|
|
6851
|
+
case "WASI_CAPABILITY_DENIED": return 403;
|
|
6852
|
+
case "WASI_INPUT_SCHEMA_MISMATCH": return 422;
|
|
6853
|
+
case "STREAM_CURSOR_EXPIRED": return 422;
|
|
6746
6854
|
default: return 400;
|
|
6747
6855
|
}
|
|
6748
6856
|
}
|
|
@@ -6760,6 +6868,39 @@ var ServiceAppsRoutesController = class {
|
|
|
6760
6868
|
return this.handleServiceAppError(c, error);
|
|
6761
6869
|
}
|
|
6762
6870
|
};
|
|
6871
|
+
inspectServiceAppAiCapabilities = async (c) => {
|
|
6872
|
+
try {
|
|
6873
|
+
return c.json(ok(await this.params.serviceAppManager.inspectServiceAppAiCapabilities(c.req.param("appId"))));
|
|
6874
|
+
} catch (error) {
|
|
6875
|
+
return this.handleServiceAppError(c, error);
|
|
6876
|
+
}
|
|
6877
|
+
};
|
|
6878
|
+
verifyServiceAppAiCapabilities = async (c) => {
|
|
6879
|
+
try {
|
|
6880
|
+
return c.json(ok(await this.params.serviceAppManager.verifyServiceAppAiCapabilities(c.req.param("appId"))));
|
|
6881
|
+
} catch (error) {
|
|
6882
|
+
return this.handleServiceAppError(c, error);
|
|
6883
|
+
}
|
|
6884
|
+
};
|
|
6885
|
+
bindServiceAppAiCapability = async (c) => {
|
|
6886
|
+
const body = await readJson(c.req.raw);
|
|
6887
|
+
if (!body.ok || body.data?.kind !== "model" && body.data?.kind !== "agent" || typeof body.data.slotId !== "string" || typeof body.data.targetId !== "string") return c.json(err("INVALID_SERVICE_APP_AI_BINDING", "kind, slotId, and targetId are required."), 400);
|
|
6888
|
+
try {
|
|
6889
|
+
const result = body.data.kind === "model" ? await this.params.serviceAppManager.bindServiceAppModelSlot(c.req.param("appId"), body.data.slotId, body.data.targetId) : await this.params.serviceAppManager.bindServiceAppAgentSlot(c.req.param("appId"), body.data.slotId, body.data.targetId);
|
|
6890
|
+
return c.json(ok(result));
|
|
6891
|
+
} catch (error) {
|
|
6892
|
+
return this.handleServiceAppError(c, error);
|
|
6893
|
+
}
|
|
6894
|
+
};
|
|
6895
|
+
unbindServiceAppAiCapability = async (c) => {
|
|
6896
|
+
const body = await readJson(c.req.raw);
|
|
6897
|
+
if (!body.ok || body.data?.kind !== "model" && body.data?.kind !== "agent" || typeof body.data.slotId !== "string") return c.json(err("INVALID_SERVICE_APP_AI_BINDING", "kind and slotId are required."), 400);
|
|
6898
|
+
try {
|
|
6899
|
+
return c.json(ok(await this.params.serviceAppManager.unbindServiceAppAiSlot(c.req.param("appId"), body.data.kind, body.data.slotId)));
|
|
6900
|
+
} catch (error) {
|
|
6901
|
+
return this.handleServiceAppError(c, error);
|
|
6902
|
+
}
|
|
6903
|
+
};
|
|
6763
6904
|
listServiceActions = async (c) => {
|
|
6764
6905
|
try {
|
|
6765
6906
|
const bridgeSession = this.readOptionalBridgeSession(c);
|
|
@@ -6797,6 +6938,121 @@ var ServiceAppsRoutesController = class {
|
|
|
6797
6938
|
return this.handleServiceAppError(c, error);
|
|
6798
6939
|
}
|
|
6799
6940
|
};
|
|
6941
|
+
invokeInstalledServiceAction = async (c) => {
|
|
6942
|
+
const body = await readJson(c.req.raw);
|
|
6943
|
+
if (!body.ok || body.data?.input !== void 0 && !isRecord$3(body.data.input)) return c.json(err("INVALID_SERVICE_ACTION_REQUEST", "invalid service action request"), 400);
|
|
6944
|
+
try {
|
|
6945
|
+
return c.json(ok(await this.params.serviceAppManager.invokeInstalledServiceAction(c.req.param("appId"), c.req.param("actionName"), isRecord$3(body.data?.input) ? body.data.input : {})));
|
|
6946
|
+
} catch (error) {
|
|
6947
|
+
return this.handleServiceAppError(c, error);
|
|
6948
|
+
}
|
|
6949
|
+
};
|
|
6950
|
+
/**
|
|
6951
|
+
* Agent tool providers call the same manager method. This explicit endpoint
|
|
6952
|
+
* is the non-LLM integration/diagnostic surface: it still requires a real
|
|
6953
|
+
* configured Agent and its explicit Service Action grant, so it cannot
|
|
6954
|
+
* impersonate either a Panel bridge or an arbitrary Agent.
|
|
6955
|
+
*/
|
|
6956
|
+
invokeAgentServiceAction = async (c) => {
|
|
6957
|
+
const body = await readJson(c.req.raw);
|
|
6958
|
+
if (!body.ok || body.data?.input !== void 0 && !isRecord$3(body.data.input)) return c.json(err("INVALID_SERVICE_ACTION_REQUEST", "invalid service action request"), 400);
|
|
6959
|
+
try {
|
|
6960
|
+
return c.json(ok(await this.params.serviceAppManager.invokeServiceAction(c.req.param("actionId"), {
|
|
6961
|
+
caller: {
|
|
6962
|
+
surface: "agent",
|
|
6963
|
+
agentId: c.req.param("agentId")
|
|
6964
|
+
},
|
|
6965
|
+
input: isRecord$3(body.data?.input) ? body.data.input : {}
|
|
6966
|
+
})));
|
|
6967
|
+
} catch (error) {
|
|
6968
|
+
return this.handleServiceAppError(c, error);
|
|
6969
|
+
}
|
|
6970
|
+
};
|
|
6971
|
+
listVerificationRecords = async (c) => {
|
|
6972
|
+
try {
|
|
6973
|
+
return c.json(ok(await this.params.serviceAppManager.listVerificationRecords({
|
|
6974
|
+
acceptanceId: this.readOptionalQuery(c, "acceptanceId"),
|
|
6975
|
+
appId: this.readOptionalQuery(c, "appId"),
|
|
6976
|
+
limit: this.readLimit(c)
|
|
6977
|
+
})));
|
|
6978
|
+
} catch (error) {
|
|
6979
|
+
return this.handleServiceAppError(c, error);
|
|
6980
|
+
}
|
|
6981
|
+
};
|
|
6982
|
+
/** Stable read-only projection of the single portable-runtime acceptance registry. */
|
|
6983
|
+
getPortableRuntimeAcceptanceContract = async (c) => {
|
|
6984
|
+
try {
|
|
6985
|
+
return c.json(ok(this.params.portableRuntimeAcceptance.contract(this.readLocale(c))));
|
|
6986
|
+
} catch (error) {
|
|
6987
|
+
return this.handleServiceAppError(c, error);
|
|
6988
|
+
}
|
|
6989
|
+
};
|
|
6990
|
+
getPortableRuntimeAcceptanceStatus = async (c) => {
|
|
6991
|
+
try {
|
|
6992
|
+
return c.json(ok(await this.params.portableRuntimeAcceptance.status({
|
|
6993
|
+
appId: this.readOptionalQuery(c, "appId"),
|
|
6994
|
+
locale: this.readLocale(c)
|
|
6995
|
+
})));
|
|
6996
|
+
} catch (error) {
|
|
6997
|
+
return this.handleServiceAppError(c, error);
|
|
6998
|
+
}
|
|
6999
|
+
};
|
|
7000
|
+
exportPortableRuntimeAcceptance = async (c) => {
|
|
7001
|
+
try {
|
|
7002
|
+
return c.json(ok(await this.params.portableRuntimeAcceptance.export({
|
|
7003
|
+
appId: this.readOptionalQuery(c, "appId"),
|
|
7004
|
+
locale: this.readLocale(c)
|
|
7005
|
+
})));
|
|
7006
|
+
} catch (error) {
|
|
7007
|
+
return this.handleServiceAppError(c, error);
|
|
7008
|
+
}
|
|
7009
|
+
};
|
|
7010
|
+
listServiceAppJobs = async (c) => {
|
|
7011
|
+
try {
|
|
7012
|
+
return c.json(ok(await this.params.serviceAppManager.listServiceAppJobs(c.req.param("appId"))));
|
|
7013
|
+
} catch (error) {
|
|
7014
|
+
return this.handleServiceAppError(c, error);
|
|
7015
|
+
}
|
|
7016
|
+
};
|
|
7017
|
+
getServiceAppJob = async (c) => {
|
|
7018
|
+
try {
|
|
7019
|
+
return c.json(ok(await this.params.serviceAppManager.getServiceAppJob(c.req.param("appId"), c.req.param("jobId"))));
|
|
7020
|
+
} catch (error) {
|
|
7021
|
+
return this.handleServiceAppError(c, error);
|
|
7022
|
+
}
|
|
7023
|
+
};
|
|
7024
|
+
/** Cursor replay only; a disconnected client never changes Job execution. */
|
|
7025
|
+
watchServiceAppJob = async (c) => {
|
|
7026
|
+
const afterSequence = this.readAfterSequence(c);
|
|
7027
|
+
if (afterSequence === null) return c.json(err("INVALID_JOB_CURSOR", "afterSequence must be a non-negative integer"), 400);
|
|
7028
|
+
try {
|
|
7029
|
+
return c.json(ok(await this.params.serviceAppManager.watchServiceAppJob(c.req.param("appId"), c.req.param("jobId"), afterSequence)));
|
|
7030
|
+
} catch (error) {
|
|
7031
|
+
return this.handleServiceAppError(c, error);
|
|
7032
|
+
}
|
|
7033
|
+
};
|
|
7034
|
+
cancelServiceAppJob = async (c) => {
|
|
7035
|
+
try {
|
|
7036
|
+
return c.json(ok(await this.params.serviceAppManager.cancelServiceAppJob(c.req.param("appId"), c.req.param("jobId"))));
|
|
7037
|
+
} catch (error) {
|
|
7038
|
+
return this.handleServiceAppError(c, error);
|
|
7039
|
+
}
|
|
7040
|
+
};
|
|
7041
|
+
/** Inspect durable Resident delivery facts; payload stays private to the instance journal. */
|
|
7042
|
+
listResidentInbox = async (c) => {
|
|
7043
|
+
try {
|
|
7044
|
+
return c.json(ok(await this.params.serviceAppManager.listResidentInbox(c.req.param("appId"), { deadLettersOnly: c.req.query("deadLetters") === "true" })));
|
|
7045
|
+
} catch (error) {
|
|
7046
|
+
return this.handleServiceAppError(c, error);
|
|
7047
|
+
}
|
|
7048
|
+
};
|
|
7049
|
+
replayResidentDeadLetter = async (c) => {
|
|
7050
|
+
try {
|
|
7051
|
+
return c.json(ok(await this.params.serviceAppManager.replayResidentDeadLetter(c.req.param("appId"), c.req.param("eventId"))));
|
|
7052
|
+
} catch (error) {
|
|
7053
|
+
return this.handleServiceAppError(c, error);
|
|
7054
|
+
}
|
|
7055
|
+
};
|
|
6800
7056
|
grantServiceAction = async (c) => {
|
|
6801
7057
|
try {
|
|
6802
7058
|
const bridgeSession = this.requireBridgeSession(c);
|
|
@@ -6898,8 +7154,24 @@ var ServiceAppsRoutesController = class {
|
|
|
6898
7154
|
};
|
|
6899
7155
|
return null;
|
|
6900
7156
|
};
|
|
7157
|
+
readOptionalQuery = (c, key) => {
|
|
7158
|
+
return c.req.query(key)?.trim() || void 0;
|
|
7159
|
+
};
|
|
7160
|
+
readLocale = (c) => c.req.query("locale") === "en" ? "en" : "zh-CN";
|
|
7161
|
+
readLimit = (c) => {
|
|
7162
|
+
const raw = c.req.query("limit");
|
|
7163
|
+
if (!raw) return void 0;
|
|
7164
|
+
const value = Number(raw);
|
|
7165
|
+
return Number.isInteger(value) && value > 0 ? value : void 0;
|
|
7166
|
+
};
|
|
7167
|
+
readAfterSequence = (c) => {
|
|
7168
|
+
const raw = c.req.query("afterSequence");
|
|
7169
|
+
if (raw === void 0 || raw === "") return void 0;
|
|
7170
|
+
const value = Number(raw);
|
|
7171
|
+
return Number.isInteger(value) && value >= 0 ? value : null;
|
|
7172
|
+
};
|
|
6901
7173
|
handleServiceAppError = (c, error) => {
|
|
6902
|
-
if (isServiceAppError(error)) return c.json(err(error.code, error.message), statusForServiceAppError(error.code));
|
|
7174
|
+
if (isServiceAppError(error)) return c.json(err(error.code, error.message, error.details), statusForServiceAppError(error.code));
|
|
6903
7175
|
if (isPanelAppError(error)) return c.json(err(error.code, error.message), 404);
|
|
6904
7176
|
if (error instanceof Error && error.message === "panel app bridge session is required") return c.json(err("PANEL_APP_BRIDGE_SESSION_REQUIRED", error.message), 401);
|
|
6905
7177
|
return c.json(err("SERVICE_APP_REQUEST_FAILED", "The Service App request failed. Please retry."), 500);
|
|
@@ -6994,7 +7266,8 @@ function createUiRouteControllers(options, authService, marketplaceBaseUrls, ser
|
|
|
6994
7266
|
projects: new ProjectsRoutesController(kernel.projectManager),
|
|
6995
7267
|
serviceApps: new ServiceAppsRoutesController({
|
|
6996
7268
|
panelAppManager: kernel.panelAppManager,
|
|
6997
|
-
serviceAppManager: kernel.serviceAppManager
|
|
7269
|
+
serviceAppManager: kernel.serviceAppManager,
|
|
7270
|
+
portableRuntimeAcceptance: kernel.portableRuntimeAcceptance
|
|
6998
7271
|
}),
|
|
6999
7272
|
serverPath: new ServerPathRoutesController(serverPathWatchService),
|
|
7000
7273
|
remote: remoteAccess ? new RemoteRoutesController(remoteAccess) : null,
|
|
@@ -7303,6 +7576,51 @@ var UiRouteRegistry = class {
|
|
|
7303
7576
|
"/api/app-packages/:appId",
|
|
7304
7577
|
appPackages.get
|
|
7305
7578
|
],
|
|
7579
|
+
[
|
|
7580
|
+
"get",
|
|
7581
|
+
"/api/app-packages/:appId/dependencies",
|
|
7582
|
+
appPackages.inspectDependencies
|
|
7583
|
+
],
|
|
7584
|
+
[
|
|
7585
|
+
"get",
|
|
7586
|
+
"/api/app-packages/:appId/dependencies/verify",
|
|
7587
|
+
appPackages.verifyDependencies
|
|
7588
|
+
],
|
|
7589
|
+
[
|
|
7590
|
+
"post",
|
|
7591
|
+
"/api/app-packages/:appId/dependencies/setup",
|
|
7592
|
+
appPackages.setupDependencies
|
|
7593
|
+
],
|
|
7594
|
+
[
|
|
7595
|
+
"post",
|
|
7596
|
+
"/api/app-packages/:appId/dependencies/bind",
|
|
7597
|
+
appPackages.bindDependency
|
|
7598
|
+
],
|
|
7599
|
+
[
|
|
7600
|
+
"post",
|
|
7601
|
+
"/api/app-packages/:appId/dependencies/unbind",
|
|
7602
|
+
appPackages.unbindDependency
|
|
7603
|
+
],
|
|
7604
|
+
[
|
|
7605
|
+
"get",
|
|
7606
|
+
"/api/app-packages/:appId/secrets",
|
|
7607
|
+
appPackages.inspectSecrets
|
|
7608
|
+
],
|
|
7609
|
+
[
|
|
7610
|
+
"post",
|
|
7611
|
+
"/api/app-packages/:appId/secrets/verify",
|
|
7612
|
+
appPackages.verifySecrets
|
|
7613
|
+
],
|
|
7614
|
+
[
|
|
7615
|
+
"post",
|
|
7616
|
+
"/api/app-packages/:appId/secrets/bind",
|
|
7617
|
+
appPackages.bindSecret
|
|
7618
|
+
],
|
|
7619
|
+
[
|
|
7620
|
+
"post",
|
|
7621
|
+
"/api/app-packages/:appId/secrets/unbind",
|
|
7622
|
+
appPackages.unbindSecret
|
|
7623
|
+
],
|
|
7306
7624
|
[
|
|
7307
7625
|
"post",
|
|
7308
7626
|
"/api/app-packages/:appId/enable",
|
|
@@ -7443,6 +7761,26 @@ var UiRouteRegistry = class {
|
|
|
7443
7761
|
"/api/service-apps",
|
|
7444
7762
|
serviceApps.listServiceApps
|
|
7445
7763
|
],
|
|
7764
|
+
[
|
|
7765
|
+
"get",
|
|
7766
|
+
"/api/service-apps/:appId/ai-capabilities",
|
|
7767
|
+
serviceApps.inspectServiceAppAiCapabilities
|
|
7768
|
+
],
|
|
7769
|
+
[
|
|
7770
|
+
"post",
|
|
7771
|
+
"/api/service-apps/:appId/ai-capabilities/verify",
|
|
7772
|
+
serviceApps.verifyServiceAppAiCapabilities
|
|
7773
|
+
],
|
|
7774
|
+
[
|
|
7775
|
+
"post",
|
|
7776
|
+
"/api/service-apps/:appId/ai-capabilities/bind",
|
|
7777
|
+
serviceApps.bindServiceAppAiCapability
|
|
7778
|
+
],
|
|
7779
|
+
[
|
|
7780
|
+
"post",
|
|
7781
|
+
"/api/service-apps/:appId/ai-capabilities/unbind",
|
|
7782
|
+
serviceApps.unbindServiceAppAiCapability
|
|
7783
|
+
],
|
|
7446
7784
|
[
|
|
7447
7785
|
"post",
|
|
7448
7786
|
"/api/service-apps/:appId/restart",
|
|
@@ -7453,6 +7791,36 @@ var UiRouteRegistry = class {
|
|
|
7453
7791
|
"/api/service-apps/:appId/actions/discover",
|
|
7454
7792
|
serviceApps.discoverServiceAppActions
|
|
7455
7793
|
],
|
|
7794
|
+
[
|
|
7795
|
+
"get",
|
|
7796
|
+
"/api/service-apps/:appId/jobs",
|
|
7797
|
+
serviceApps.listServiceAppJobs
|
|
7798
|
+
],
|
|
7799
|
+
[
|
|
7800
|
+
"get",
|
|
7801
|
+
"/api/service-apps/:appId/jobs/:jobId",
|
|
7802
|
+
serviceApps.getServiceAppJob
|
|
7803
|
+
],
|
|
7804
|
+
[
|
|
7805
|
+
"get",
|
|
7806
|
+
"/api/service-apps/:appId/jobs/:jobId/watch",
|
|
7807
|
+
serviceApps.watchServiceAppJob
|
|
7808
|
+
],
|
|
7809
|
+
[
|
|
7810
|
+
"post",
|
|
7811
|
+
"/api/service-apps/:appId/jobs/:jobId/cancel",
|
|
7812
|
+
serviceApps.cancelServiceAppJob
|
|
7813
|
+
],
|
|
7814
|
+
[
|
|
7815
|
+
"get",
|
|
7816
|
+
"/api/service-apps/:appId/resident-inbox",
|
|
7817
|
+
serviceApps.listResidentInbox
|
|
7818
|
+
],
|
|
7819
|
+
[
|
|
7820
|
+
"post",
|
|
7821
|
+
"/api/service-apps/:appId/resident-inbox/:eventId/replay",
|
|
7822
|
+
serviceApps.replayResidentDeadLetter
|
|
7823
|
+
],
|
|
7456
7824
|
[
|
|
7457
7825
|
"get",
|
|
7458
7826
|
"/api/service-apps/:appId",
|
|
@@ -7473,6 +7841,31 @@ var UiRouteRegistry = class {
|
|
|
7473
7841
|
"/api/service-actions/:actionId/invoke",
|
|
7474
7842
|
serviceApps.invokeServiceAction
|
|
7475
7843
|
],
|
|
7844
|
+
[
|
|
7845
|
+
"post",
|
|
7846
|
+
"/api/service-apps/:appId/actions/:actionName/invoke",
|
|
7847
|
+
serviceApps.invokeInstalledServiceAction
|
|
7848
|
+
],
|
|
7849
|
+
[
|
|
7850
|
+
"get",
|
|
7851
|
+
"/api/runtime-verification-records",
|
|
7852
|
+
serviceApps.listVerificationRecords
|
|
7853
|
+
],
|
|
7854
|
+
[
|
|
7855
|
+
"get",
|
|
7856
|
+
"/api/portable-runtime/acceptance/contract",
|
|
7857
|
+
serviceApps.getPortableRuntimeAcceptanceContract
|
|
7858
|
+
],
|
|
7859
|
+
[
|
|
7860
|
+
"get",
|
|
7861
|
+
"/api/portable-runtime/acceptance/status",
|
|
7862
|
+
serviceApps.getPortableRuntimeAcceptanceStatus
|
|
7863
|
+
],
|
|
7864
|
+
[
|
|
7865
|
+
"get",
|
|
7866
|
+
"/api/portable-runtime/acceptance/export",
|
|
7867
|
+
serviceApps.exportPortableRuntimeAcceptance
|
|
7868
|
+
],
|
|
7476
7869
|
[
|
|
7477
7870
|
"post",
|
|
7478
7871
|
"/api/service-actions/:actionId/grant",
|
|
@@ -7498,6 +7891,11 @@ var UiRouteRegistry = class {
|
|
|
7498
7891
|
"/api/agents/:agentId/service-action-grants",
|
|
7499
7892
|
serviceApps.grantAgentServiceActions
|
|
7500
7893
|
],
|
|
7894
|
+
[
|
|
7895
|
+
"post",
|
|
7896
|
+
"/api/agents/:agentId/service-actions/:actionId/invoke",
|
|
7897
|
+
serviceApps.invokeAgentServiceAction
|
|
7898
|
+
],
|
|
7501
7899
|
[
|
|
7502
7900
|
"delete",
|
|
7503
7901
|
"/api/service-action-grants/:actionId",
|