@intentic/sandbox-contract 1.307.0 → 1.308.2
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/README.md +12 -0
- package/dist/contracts/accounts.contract.d.ts +6 -6
- package/dist/contracts/accounts.contract.js +7 -7
- package/dist/contracts/accounts.contract.js.map +1 -1
- package/dist/contracts/activity.contract.d.ts +2 -2
- package/dist/contracts/activity.contract.js +3 -3
- package/dist/contracts/activity.contract.js.map +1 -1
- package/dist/contracts/agent.contract.d.ts +10 -10
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +21 -11
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/agents.contract.d.ts +41 -27
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.js +44 -28
- package/dist/contracts/agents.contract.js.map +1 -1
- package/dist/contracts/approvals.contract.d.ts +3 -3
- package/dist/contracts/approvals.contract.js +4 -4
- package/dist/contracts/approvals.contract.js.map +1 -1
- package/dist/contracts/areas.contract.d.ts +3 -3
- package/dist/contracts/areas.contract.d.ts.map +1 -1
- package/dist/contracts/areas.contract.js +5 -4
- package/dist/contracts/areas.contract.js.map +1 -1
- package/dist/contracts/automations.contract.d.ts +11 -11
- package/dist/contracts/automations.contract.js +12 -12
- package/dist/contracts/automations.contract.js.map +1 -1
- package/dist/contracts/capabilities.contract.d.ts +13 -13
- package/dist/contracts/capabilities.contract.d.ts.map +1 -1
- package/dist/contracts/capabilities.contract.js +18 -14
- package/dist/contracts/capabilities.contract.js.map +1 -1
- package/dist/contracts/chores.contract.d.ts +3 -3
- package/dist/contracts/chores.contract.js +4 -4
- package/dist/contracts/chores.contract.js.map +1 -1
- package/dist/contracts/ci.contract.d.ts +5 -5
- package/dist/contracts/ci.contract.js +6 -6
- package/dist/contracts/ci.contract.js.map +1 -1
- package/dist/contracts/diff.contract.d.ts +1 -1
- package/dist/contracts/diff.contract.js +2 -2
- package/dist/contracts/diff.contract.js.map +1 -1
- package/dist/contracts/endpoints.contract.d.ts +4 -4
- package/dist/contracts/endpoints.contract.js +5 -5
- package/dist/contracts/endpoints.contract.js.map +1 -1
- package/dist/contracts/exit.contract.d.ts +7 -7
- package/dist/contracts/exit.contract.d.ts.map +1 -1
- package/dist/contracts/exit.contract.js +9 -8
- package/dist/contracts/exit.contract.js.map +1 -1
- package/dist/contracts/extensions.contract.d.ts +17 -17
- package/dist/contracts/extensions.contract.js +18 -18
- package/dist/contracts/extensions.contract.js.map +1 -1
- package/dist/contracts/git.contract.d.ts +47 -45
- package/dist/contracts/git.contract.d.ts.map +1 -1
- package/dist/contracts/git.contract.js +46 -46
- package/dist/contracts/git.contract.js.map +1 -1
- package/dist/contracts/history.contract.d.ts +4 -4
- package/dist/contracts/history.contract.js +5 -5
- package/dist/contracts/history.contract.js.map +1 -1
- package/dist/contracts/intentic.contract.d.ts +3 -3
- package/dist/contracts/intentic.contract.d.ts.map +1 -1
- package/dist/contracts/intentic.contract.js +5 -4
- package/dist/contracts/intentic.contract.js.map +1 -1
- package/dist/contracts/inventory.contract.d.ts +3 -3
- package/dist/contracts/inventory.contract.js +4 -4
- package/dist/contracts/inventory.contract.js.map +1 -1
- package/dist/contracts/issues.contract.d.ts +5 -5
- package/dist/contracts/issues.contract.js +6 -6
- package/dist/contracts/issues.contract.js.map +1 -1
- package/dist/contracts/logs.contract.d.ts +3 -3
- package/dist/contracts/logs.contract.d.ts.map +1 -1
- package/dist/contracts/logs.contract.js +6 -4
- package/dist/contracts/logs.contract.js.map +1 -1
- package/dist/contracts/loops.contract.d.ts +6 -6
- package/dist/contracts/loops.contract.js +7 -7
- package/dist/contracts/loops.contract.js.map +1 -1
- package/dist/contracts/netdisk.contract.d.ts +3 -3
- package/dist/contracts/netdisk.contract.d.ts.map +1 -1
- package/dist/contracts/netdisk.contract.js +5 -4
- package/dist/contracts/netdisk.contract.js.map +1 -1
- package/dist/contracts/panels.contract.d.ts +3 -3
- package/dist/contracts/panels.contract.js +4 -4
- package/dist/contracts/panels.contract.js.map +1 -1
- package/dist/contracts/personas.contract.d.ts +8 -8
- package/dist/contracts/personas.contract.d.ts.map +1 -1
- package/dist/contracts/personas.contract.js +10 -9
- package/dist/contracts/personas.contract.js.map +1 -1
- package/dist/contracts/ports.contract.d.ts +3 -3
- package/dist/contracts/ports.contract.d.ts.map +1 -1
- package/dist/contracts/ports.contract.js +5 -4
- package/dist/contracts/ports.contract.js.map +1 -1
- package/dist/contracts/prepush.contract.d.ts +3 -3
- package/dist/contracts/prepush.contract.js +4 -4
- package/dist/contracts/prepush.contract.js.map +1 -1
- package/dist/contracts/providers.contract.d.ts +2 -2
- package/dist/contracts/providers.contract.d.ts.map +1 -1
- package/dist/contracts/providers.contract.js +5 -3
- package/dist/contracts/providers.contract.js.map +1 -1
- package/dist/contracts/public.contract.d.ts +3 -3
- package/dist/contracts/public.contract.js +4 -4
- package/dist/contracts/public.contract.js.map +1 -1
- package/dist/contracts/push.contract.d.ts +4 -4
- package/dist/contracts/push.contract.d.ts.map +1 -1
- package/dist/contracts/push.contract.js +9 -5
- package/dist/contracts/push.contract.js.map +1 -1
- package/dist/contracts/safety.contract.d.ts +3 -3
- package/dist/contracts/safety.contract.js +4 -4
- package/dist/contracts/safety.contract.js.map +1 -1
- package/dist/contracts/secrets.contract.d.ts +9 -9
- package/dist/contracts/secrets.contract.d.ts.map +1 -1
- package/dist/contracts/secrets.contract.js +13 -10
- package/dist/contracts/secrets.contract.js.map +1 -1
- package/dist/contracts/sessions.contract.d.ts +2 -2
- package/dist/contracts/sessions.contract.d.ts.map +1 -1
- package/dist/contracts/sessions.contract.js +5 -3
- package/dist/contracts/sessions.contract.js.map +1 -1
- package/dist/contracts/settings.contract.d.ts +11 -9
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.js +11 -10
- package/dist/contracts/settings.contract.js.map +1 -1
- package/dist/contracts/share.contract.d.ts +4 -4
- package/dist/contracts/share.contract.js +5 -5
- package/dist/contracts/share.contract.js.map +1 -1
- package/dist/contracts/skills.contract.d.ts +5 -5
- package/dist/contracts/skills.contract.js +6 -6
- package/dist/contracts/skills.contract.js.map +1 -1
- package/dist/contracts/system.contract.d.ts +22 -19
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/system.contract.js +27 -20
- package/dist/contracts/system.contract.js.map +1 -1
- package/dist/contracts/translator.contract.d.ts +5 -5
- package/dist/contracts/translator.contract.js +6 -6
- package/dist/contracts/translator.contract.js.map +1 -1
- package/dist/contracts/usage.contract.d.ts +4 -4
- package/dist/contracts/usage.contract.js +5 -5
- package/dist/contracts/usage.contract.js.map +1 -1
- package/dist/contracts/vpn.contract.d.ts +4 -4
- package/dist/contracts/vpn.contract.d.ts.map +1 -1
- package/dist/contracts/vpn.contract.js +6 -5
- package/dist/contracts/vpn.contract.js.map +1 -1
- package/dist/contracts/workflows.contract.d.ts +9 -9
- package/dist/contracts/workflows.contract.js +10 -10
- package/dist/contracts/workflows.contract.js.map +1 -1
- package/dist/contracts/workspace.contract.d.ts +30 -30
- package/dist/contracts/workspace.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.js +46 -31
- package/dist/contracts/workspace.contract.js.map +1 -1
- package/dist/events/land-breakage.d.ts +4 -0
- package/dist/events/land-breakage.d.ts.map +1 -0
- package/dist/events/land-breakage.js +4 -0
- package/dist/events/land-breakage.js.map +1 -0
- package/dist/events/system-events.d.ts +2 -0
- package/dist/events/system-events.d.ts.map +1 -1
- package/dist/index.d.ts +9379 -9350
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/protocol/procedure-types.d.ts +10 -0
- package/dist/protocol/procedure-types.d.ts.map +1 -0
- package/dist/protocol/procedure-types.js +2 -0
- package/dist/protocol/procedure-types.js.map +1 -0
- package/dist/protocol/raw-routes.d.ts +417 -0
- package/dist/protocol/raw-routes.d.ts.map +1 -0
- package/dist/protocol/raw-routes.js +140 -0
- package/dist/protocol/raw-routes.js.map +1 -0
- package/dist/protocol/route-meta.d.ts +18 -0
- package/dist/protocol/route-meta.d.ts.map +1 -0
- package/dist/protocol/route-meta.js +3 -0
- package/dist/protocol/route-meta.js.map +1 -0
- package/dist/protocol/routes.d.ts +3 -0
- package/dist/protocol/routes.d.ts.map +1 -1
- package/dist/protocol/routes.js +47 -14
- package/dist/protocol/routes.js.map +1 -1
- package/dist/schemas/agent.d.ts +33 -0
- package/dist/schemas/agent.d.ts.map +1 -1
- package/dist/schemas/agent.js +22 -3
- package/dist/schemas/agent.js.map +1 -1
- package/dist/schemas/agents.d.ts +4 -0
- package/dist/schemas/agents.d.ts.map +1 -1
- package/dist/schemas/agents.js +4 -0
- package/dist/schemas/agents.js.map +1 -1
- package/dist/schemas/automations.d.ts +1 -0
- package/dist/schemas/automations.d.ts.map +1 -1
- package/dist/schemas/devices.d.ts.map +1 -1
- package/dist/schemas/devices.js +2 -2
- package/dist/schemas/devices.js.map +1 -1
- package/dist/schemas/git/git.d.ts +3 -0
- package/dist/schemas/git/git.d.ts.map +1 -1
- package/dist/schemas/hosts.d.ts +1 -0
- package/dist/schemas/hosts.d.ts.map +1 -1
- package/dist/schemas/hosts.js +1 -0
- package/dist/schemas/hosts.js.map +1 -1
- package/dist/schemas/settings.d.ts +1 -0
- package/dist/schemas/settings.d.ts.map +1 -1
- package/dist/schemas/settings.js +4 -0
- package/dist/schemas/settings.js.map +1 -1
- package/dist/state/definition.d.ts +4 -0
- package/dist/state/definition.d.ts.map +1 -1
- package/dist/state/history-state.d.ts.map +1 -1
- package/dist/state/history-state.js +2 -12
- package/dist/state/history-state.js.map +1 -1
- package/dist/state/landed-commit.d.ts +4 -0
- package/dist/state/landed-commit.d.ts.map +1 -0
- package/dist/state/landed-commit.js +12 -0
- package/dist/state/landed-commit.js.map +1 -0
- package/package.json +5 -5
- package/src/contracts/accounts.contract.ts +7 -7
- package/src/contracts/activity.contract.ts +3 -3
- package/src/contracts/agent.contract.ts +25 -11
- package/src/contracts/agents.contract.ts +48 -30
- package/src/contracts/approvals.contract.ts +4 -4
- package/src/contracts/areas.contract.ts +5 -4
- package/src/contracts/automations.contract.ts +12 -12
- package/src/contracts/capabilities.contract.ts +23 -14
- package/src/contracts/chores.contract.ts +4 -4
- package/src/contracts/ci.contract.ts +6 -6
- package/src/contracts/diff.contract.ts +2 -2
- package/src/contracts/endpoints.contract.ts +5 -5
- package/src/contracts/exit.contract.ts +11 -8
- package/src/contracts/extensions.contract.ts +18 -18
- package/src/contracts/git.contract.ts +46 -46
- package/src/contracts/history.contract.ts +5 -5
- package/src/contracts/intentic.contract.ts +5 -4
- package/src/contracts/inventory.contract.ts +4 -4
- package/src/contracts/issues.contract.ts +6 -6
- package/src/contracts/logs.contract.ts +8 -4
- package/src/contracts/loops.contract.ts +7 -7
- package/src/contracts/netdisk.contract.ts +7 -4
- package/src/contracts/panels.contract.ts +4 -4
- package/src/contracts/personas.contract.ts +10 -9
- package/src/contracts/ports.contract.ts +6 -4
- package/src/contracts/prepush.contract.ts +4 -4
- package/src/contracts/providers.contract.ts +5 -3
- package/src/contracts/public.contract.ts +4 -4
- package/src/contracts/push.contract.ts +12 -5
- package/src/contracts/safety.contract.ts +4 -4
- package/src/contracts/secrets.contract.ts +16 -10
- package/src/contracts/sessions.contract.ts +6 -3
- package/src/contracts/settings.contract.ts +11 -10
- package/src/contracts/share.contract.ts +5 -5
- package/src/contracts/skills.contract.ts +6 -6
- package/src/contracts/system.contract.ts +32 -20
- package/src/contracts/translator.contract.ts +6 -6
- package/src/contracts/usage.contract.ts +5 -5
- package/src/contracts/vpn.contract.ts +8 -5
- package/src/contracts/workflows.contract.ts +10 -10
- package/src/contracts/workspace.contract.ts +49 -31
- package/src/events/land-breakage.ts +11 -0
- package/src/index.ts +23 -1
- package/src/models/capability-ledger.test.ts +1 -1
- package/src/protocol/procedure-types.ts +24 -0
- package/src/protocol/raw-routes.ts +191 -0
- package/src/protocol/route-meta.ts +39 -0
- package/src/protocol/routes.test.ts +65 -2
- package/src/protocol/routes.ts +88 -27
- package/src/schemas/agent.test.ts +66 -0
- package/src/schemas/agent.ts +184 -154
- package/src/schemas/agents.ts +6 -0
- package/src/schemas/devices.ts +2 -2
- package/src/schemas/hosts.ts +4 -0
- package/src/schemas/settings.ts +9 -0
- package/src/state/history-state.ts +14 -29
- package/src/state/landed-commit.test.ts +18 -0
- package/src/state/landed-commit.ts +17 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import {
|
|
3
3
|
AutomationApprovalIdParamSchema,
|
|
4
4
|
AutomationApprovalsListSchema,
|
|
@@ -15,7 +15,7 @@ import { DoorTokenSchema, OkSchema } from "../schemas/shared.js";
|
|
|
15
15
|
// Automations manifest (scheduled agent wake-ups); `pending*` is the owner's approval queue for wakes a
|
|
16
16
|
// `requireApproval` automation holds instead of firing directly.
|
|
17
17
|
export const automationsContract = {
|
|
18
|
-
list:
|
|
18
|
+
list: procedure
|
|
19
19
|
.route({
|
|
20
20
|
method: "GET",
|
|
21
21
|
path: "/automations",
|
|
@@ -23,7 +23,7 @@ export const automationsContract = {
|
|
|
23
23
|
description: "Every automation with its recent runs and when it fires next.",
|
|
24
24
|
})
|
|
25
25
|
.output(AutomationsListSchema),
|
|
26
|
-
catalog:
|
|
26
|
+
catalog: procedure
|
|
27
27
|
.route({
|
|
28
28
|
method: "GET",
|
|
29
29
|
path: "/automations/catalog",
|
|
@@ -32,7 +32,7 @@ export const automationsContract = {
|
|
|
32
32
|
"Every trigger this sandbox understands and every template worth starting from, the daemon's own merged with each installed extension's. Writing an automation is checked against this same list, so a screen and the daemon can never disagree about what is allowed.",
|
|
33
33
|
})
|
|
34
34
|
.output(AutomationCatalogSchema),
|
|
35
|
-
upsert:
|
|
35
|
+
upsert: procedure
|
|
36
36
|
.route({
|
|
37
37
|
method: "POST",
|
|
38
38
|
path: "/automations",
|
|
@@ -41,7 +41,7 @@ export const automationsContract = {
|
|
|
41
41
|
})
|
|
42
42
|
.input(AutomationSchema)
|
|
43
43
|
.output(OkSchema),
|
|
44
|
-
setEnabled:
|
|
44
|
+
setEnabled: procedure
|
|
45
45
|
.route({
|
|
46
46
|
method: "POST",
|
|
47
47
|
path: "/automations/{id}/enabled",
|
|
@@ -50,7 +50,7 @@ export const automationsContract = {
|
|
|
50
50
|
})
|
|
51
51
|
.input(AutomationEnabledInputSchema)
|
|
52
52
|
.output(OkSchema),
|
|
53
|
-
remove:
|
|
53
|
+
remove: procedure
|
|
54
54
|
.route({
|
|
55
55
|
method: "DELETE",
|
|
56
56
|
path: "/automations/{id}",
|
|
@@ -59,7 +59,7 @@ export const automationsContract = {
|
|
|
59
59
|
})
|
|
60
60
|
.input(AutomationIdParamSchema)
|
|
61
61
|
.output(OkSchema),
|
|
62
|
-
rotateToken:
|
|
62
|
+
rotateToken: procedure
|
|
63
63
|
.route({
|
|
64
64
|
method: "POST",
|
|
65
65
|
path: "/automations/{id}/rotate-token",
|
|
@@ -70,7 +70,7 @@ export const automationsContract = {
|
|
|
70
70
|
.input(AutomationIdParamSchema)
|
|
71
71
|
.output(DoorTokenSchema),
|
|
72
72
|
// Skips only the approval gate, since pressing this button is the owner's approval.
|
|
73
|
-
run:
|
|
73
|
+
run: procedure
|
|
74
74
|
.route({
|
|
75
75
|
method: "POST",
|
|
76
76
|
path: "/automations/{id}/run",
|
|
@@ -80,7 +80,7 @@ export const automationsContract = {
|
|
|
80
80
|
})
|
|
81
81
|
.input(AutomationIdParamSchema)
|
|
82
82
|
.output(OkSchema),
|
|
83
|
-
senders:
|
|
83
|
+
senders: procedure
|
|
84
84
|
.route({
|
|
85
85
|
method: "GET",
|
|
86
86
|
path: "/automations/senders/{provider}",
|
|
@@ -90,7 +90,7 @@ export const automationsContract = {
|
|
|
90
90
|
})
|
|
91
91
|
.input(SendersProviderParamSchema)
|
|
92
92
|
.output(SendersRosterSchema),
|
|
93
|
-
pendingList:
|
|
93
|
+
pendingList: procedure
|
|
94
94
|
.route({
|
|
95
95
|
method: "GET",
|
|
96
96
|
path: "/automations/pending",
|
|
@@ -98,7 +98,7 @@ export const automationsContract = {
|
|
|
98
98
|
description: "The queue an automation set to ask first lands in each time it would have fired.",
|
|
99
99
|
})
|
|
100
100
|
.output(AutomationApprovalsListSchema),
|
|
101
|
-
approve:
|
|
101
|
+
approve: procedure
|
|
102
102
|
.route({
|
|
103
103
|
method: "POST",
|
|
104
104
|
path: "/automations/pending/{id}/approve",
|
|
@@ -107,7 +107,7 @@ export const automationsContract = {
|
|
|
107
107
|
})
|
|
108
108
|
.input(AutomationApprovalIdParamSchema)
|
|
109
109
|
.output(OkSchema),
|
|
110
|
-
reject:
|
|
110
|
+
reject: procedure
|
|
111
111
|
.route({
|
|
112
112
|
method: "POST",
|
|
113
113
|
path: "/automations/pending/{id}/reject",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { streamOf } from "../protocol/routes.js";
|
|
3
3
|
import { IntenticLineSchema } from "../events/system-events.js";
|
|
4
4
|
import {
|
|
@@ -18,10 +18,13 @@ import { MarketplaceRequestSchema, MarketplaceSchema } from "../schemas/marketpl
|
|
|
18
18
|
import { RemoteRefsRequestSchema, RemoteRefsSchema } from "../schemas/git/remote-refs.js";
|
|
19
19
|
import { OkSchema } from "../schemas/shared.js";
|
|
20
20
|
|
|
21
|
+
// Connected services name accounts and what this sandbox reaches: the operating tier's, reads included, and no token's.
|
|
22
|
+
const capabilityRoute = procedure.meta({ floor: "maintainer", control: "never" });
|
|
23
|
+
|
|
21
24
|
// The sandbox's unified capability manifest, spanning `list`/`add`/`remove`/`status`/`marketplace`. A VAULTED marker
|
|
22
25
|
// with nothing stored behind it is refused rather than silently written.
|
|
23
26
|
export const capabilitiesContract = {
|
|
24
|
-
list:
|
|
27
|
+
list: capabilityRoute
|
|
25
28
|
.route({
|
|
26
29
|
method: "GET",
|
|
27
30
|
path: "/capabilities",
|
|
@@ -30,7 +33,7 @@ export const capabilitiesContract = {
|
|
|
30
33
|
"Each connection with its live state, the settings that are safe to show, and the names of the credentials it holds. The values of those credentials are never in the answer, on any route but one.",
|
|
31
34
|
})
|
|
32
35
|
.output(CapabilitiesListSchema),
|
|
33
|
-
add:
|
|
36
|
+
add: capabilityRoute
|
|
34
37
|
.route({
|
|
35
38
|
method: "POST",
|
|
36
39
|
path: "/capabilities",
|
|
@@ -41,7 +44,7 @@ export const capabilitiesContract = {
|
|
|
41
44
|
.input(CapabilitySchema)
|
|
42
45
|
.output(streamOf(IntenticLineSchema)),
|
|
43
46
|
// A credential the caller is keeping arrives as VAULTED here too, so an edit can be tested without retyping a key.
|
|
44
|
-
probe:
|
|
47
|
+
probe: capabilityRoute
|
|
45
48
|
.route({
|
|
46
49
|
method: "POST",
|
|
47
50
|
path: "/capabilities/probe",
|
|
@@ -49,9 +52,11 @@ export const capabilitiesContract = {
|
|
|
49
52
|
description:
|
|
50
53
|
"Dials the service the way this connection would and hands back what it said, before anything is written. The answer is the service's own confirmation or its exact refusal, so a wrong token or an unreachable host is found on the form rather than on a card afterwards.",
|
|
51
54
|
})
|
|
55
|
+
// Sends a stored key to a caller-supplied host: withheld from the panel token every panel process holds.
|
|
56
|
+
.meta({ panel: false })
|
|
52
57
|
.input(CapabilitySchema)
|
|
53
58
|
.output(CapabilityProbeSchema),
|
|
54
|
-
remove:
|
|
59
|
+
remove: capabilityRoute
|
|
55
60
|
.route({
|
|
56
61
|
method: "DELETE",
|
|
57
62
|
path: "/capabilities/{id}",
|
|
@@ -61,7 +66,7 @@ export const capabilitiesContract = {
|
|
|
61
66
|
})
|
|
62
67
|
.input(CapabilityIdParamSchema)
|
|
63
68
|
.output(OkSchema),
|
|
64
|
-
rename:
|
|
69
|
+
rename: capabilityRoute
|
|
65
70
|
.route({
|
|
66
71
|
method: "POST",
|
|
67
72
|
path: "/capabilities/{id}/rename",
|
|
@@ -72,7 +77,7 @@ export const capabilitiesContract = {
|
|
|
72
77
|
.input(CapabilityRenameSchema)
|
|
73
78
|
.output(OkSchema),
|
|
74
79
|
// Called by the /secrets page's edit action.
|
|
75
|
-
setSecret:
|
|
80
|
+
setSecret: capabilityRoute
|
|
76
81
|
.route({
|
|
77
82
|
method: "POST",
|
|
78
83
|
path: "/capabilities/{id}/secret",
|
|
@@ -81,7 +86,7 @@ export const capabilitiesContract = {
|
|
|
81
86
|
})
|
|
82
87
|
.input(CapabilitySecretInputSchema)
|
|
83
88
|
.output(OkSchema),
|
|
84
|
-
status:
|
|
89
|
+
status: capabilityRoute
|
|
85
90
|
.route({
|
|
86
91
|
method: "GET",
|
|
87
92
|
path: "/capabilities/{id}/status",
|
|
@@ -91,7 +96,7 @@ export const capabilitiesContract = {
|
|
|
91
96
|
.input(CapabilityIdParamSchema)
|
|
92
97
|
.output(CapabilityStatusSchema),
|
|
93
98
|
// Gated by `permissions.daemon` in the manifest (ext-deployments reads its Komodo key pair this way).
|
|
94
|
-
connection:
|
|
99
|
+
connection: capabilityRoute
|
|
95
100
|
.route({
|
|
96
101
|
method: "GET",
|
|
97
102
|
path: "/capabilities/{id}/connection",
|
|
@@ -99,9 +104,11 @@ export const capabilitiesContract = {
|
|
|
99
104
|
description:
|
|
100
105
|
"The one call that hands back stored secrets, so an extension's own backend can dial the service behind a connection. Never answered for a signed-in person: only a machine credential reaches it, and an extension's only if its manifest asked for this route out loud at install time.",
|
|
101
106
|
})
|
|
107
|
+
// Answers with the secrets included: withheld from the panel token every panel process holds.
|
|
108
|
+
.meta({ panel: false })
|
|
102
109
|
.input(CapabilityIdParamSchema)
|
|
103
110
|
.output(CapabilityConnectionSchema),
|
|
104
|
-
marketplace:
|
|
111
|
+
marketplace: capabilityRoute
|
|
105
112
|
.route({
|
|
106
113
|
method: "POST",
|
|
107
114
|
path: "/capabilities/marketplace",
|
|
@@ -111,7 +118,7 @@ export const capabilitiesContract = {
|
|
|
111
118
|
.input(MarketplaceRequestSchema)
|
|
112
119
|
.output(MarketplaceSchema),
|
|
113
120
|
// What the install form pins to, so nobody has to read a commit sha off a web page and paste it.
|
|
114
|
-
refs:
|
|
121
|
+
refs: capabilityRoute
|
|
115
122
|
.route({
|
|
116
123
|
method: "POST",
|
|
117
124
|
path: "/capabilities/refs",
|
|
@@ -121,7 +128,7 @@ export const capabilitiesContract = {
|
|
|
121
128
|
})
|
|
122
129
|
.input(RemoteRefsRequestSchema)
|
|
123
130
|
.output(RemoteRefsSchema),
|
|
124
|
-
dismiss:
|
|
131
|
+
dismiss: capabilityRoute
|
|
125
132
|
.route({
|
|
126
133
|
method: "DELETE",
|
|
127
134
|
path: "/capabilities/recommendations/{entry}",
|
|
@@ -132,7 +139,7 @@ export const capabilitiesContract = {
|
|
|
132
139
|
.input(CapabilityEntryParamSchema)
|
|
133
140
|
.output(OkSchema),
|
|
134
141
|
// Runs the capability's declared `loginCommand` in the terminal session the panel attaches to.
|
|
135
|
-
login:
|
|
142
|
+
login: capabilityRoute
|
|
136
143
|
.route({
|
|
137
144
|
method: "POST",
|
|
138
145
|
path: "/capabilities/{id}/login",
|
|
@@ -143,7 +150,7 @@ export const capabilitiesContract = {
|
|
|
143
150
|
.input(CapabilityIdParamSchema)
|
|
144
151
|
.output(CapabilityLoginSchema),
|
|
145
152
|
// The seed comes from the config field the card marks `totp`.
|
|
146
|
-
otp:
|
|
153
|
+
otp: capabilityRoute
|
|
147
154
|
.route({
|
|
148
155
|
method: "GET",
|
|
149
156
|
path: "/capabilities/{id}/otp",
|
|
@@ -151,6 +158,8 @@ export const capabilitiesContract = {
|
|
|
151
158
|
description:
|
|
152
159
|
"Generates a single two-factor code from a stored seed. The one credential-adjacent read an agent is allowed, and it is safe because a code expires in seconds and never reveals the seed, so an agent can answer a prompt without ever holding the factor.",
|
|
153
160
|
})
|
|
161
|
+
// The `otp` CLI mints a code on the agent token; it never reads the seed behind it.
|
|
162
|
+
.meta({ agent: true })
|
|
154
163
|
.input(CapabilityIdParamSchema)
|
|
155
164
|
.output(CapabilityOtpSchema),
|
|
156
165
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { ChoreLedgerWriteSchema, ChoreProbeRequestSchema, ChoresReportSchema } from "../schemas/maintenance.js";
|
|
3
3
|
import { OkSchema } from "../schemas/shared.js";
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@ import { OkSchema } from "../schemas/shared.js";
|
|
|
6
6
|
// agent (`POST /agent`), reusing its worktree, status, cost and transcript rather than duplicating a launcher here.
|
|
7
7
|
export const choresContract = {
|
|
8
8
|
// Polled by both the rail badge and the panel.
|
|
9
|
-
list:
|
|
9
|
+
list: procedure
|
|
10
10
|
.route({
|
|
11
11
|
method: "GET",
|
|
12
12
|
path: "/chores",
|
|
@@ -15,7 +15,7 @@ export const choresContract = {
|
|
|
15
15
|
"Every repo's standing evidence in one read: what the last measurement found and how old it is, the cheap signals that are always current, and what has already been decided about each.",
|
|
16
16
|
})
|
|
17
17
|
.output(ChoresReportSchema),
|
|
18
|
-
probe:
|
|
18
|
+
probe: procedure
|
|
19
19
|
.route({
|
|
20
20
|
method: "POST",
|
|
21
21
|
path: "/chores/probe",
|
|
@@ -26,7 +26,7 @@ export const choresContract = {
|
|
|
26
26
|
.input(ChoreProbeRequestSchema)
|
|
27
27
|
.output(OkSchema),
|
|
28
28
|
// Also how a snooze is recorded, upserted the same way as a verdict.
|
|
29
|
-
record:
|
|
29
|
+
record: procedure
|
|
30
30
|
.route({
|
|
31
31
|
method: "POST",
|
|
32
32
|
path: "/chores/ledger",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import {
|
|
3
3
|
CiFixParamSchema,
|
|
4
4
|
CiFixResponseSchema,
|
|
@@ -14,7 +14,7 @@ import { OkSchema } from "../schemas/shared.js";
|
|
|
14
14
|
// (/ci/webhook/:host) is a plain Hono route, vendors can't do Google ID tokens, so it lives outside this
|
|
15
15
|
// contract, like /automations/{id}/fire.
|
|
16
16
|
export const ciContract = {
|
|
17
|
-
runs:
|
|
17
|
+
runs: procedure
|
|
18
18
|
.route({
|
|
19
19
|
method: "GET",
|
|
20
20
|
path: "/ci/runs",
|
|
@@ -23,7 +23,7 @@ export const ciContract = {
|
|
|
23
23
|
"What the forges are reporting for every workspace repo that has a remote, served from a cache and filled in on demand. Repos whose notifications are not wired up say so.",
|
|
24
24
|
})
|
|
25
25
|
.output(CiRunsResponseSchema),
|
|
26
|
-
rerun:
|
|
26
|
+
rerun: procedure
|
|
27
27
|
.route({
|
|
28
28
|
method: "POST",
|
|
29
29
|
path: "/ci/runs/rerun",
|
|
@@ -32,7 +32,7 @@ export const ciContract = {
|
|
|
32
32
|
})
|
|
33
33
|
.input(CiRunParamSchema)
|
|
34
34
|
.output(OkSchema),
|
|
35
|
-
cancel:
|
|
35
|
+
cancel: procedure
|
|
36
36
|
.route({
|
|
37
37
|
method: "POST",
|
|
38
38
|
path: "/ci/runs/cancel",
|
|
@@ -41,7 +41,7 @@ export const ciContract = {
|
|
|
41
41
|
})
|
|
42
42
|
.input(CiRunParamSchema)
|
|
43
43
|
.output(OkSchema),
|
|
44
|
-
jobs:
|
|
44
|
+
jobs: procedure
|
|
45
45
|
.route({
|
|
46
46
|
method: "POST",
|
|
47
47
|
path: "/ci/runs/jobs",
|
|
@@ -50,7 +50,7 @@ export const ciContract = {
|
|
|
50
50
|
})
|
|
51
51
|
.input(CiRunParamSchema)
|
|
52
52
|
.output(CiJobsResponseSchema),
|
|
53
|
-
fix:
|
|
53
|
+
fix: procedure
|
|
54
54
|
.route({
|
|
55
55
|
method: "POST",
|
|
56
56
|
path: "/ci/fix",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { DerivedDiffSchema, DiffSourceQuerySchema } from "../schemas/diff.js";
|
|
3
3
|
|
|
4
4
|
// What a diff's two sides are besides text: the byte route (/diff/raw) is plain Hono since it streams a body; the
|
|
5
5
|
// derived-text route is here, answering both sides in one call so they render together.
|
|
6
6
|
export const diffContract = {
|
|
7
|
-
derived:
|
|
7
|
+
derived: procedure
|
|
8
8
|
.route({
|
|
9
9
|
method: "GET",
|
|
10
10
|
path: "/diff/derived",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { CapabilityIdParamSchema } from "../schemas/capabilities.js";
|
|
4
4
|
import { ModelsSchema } from "../schemas/providers/provider-oauth.js";
|
|
@@ -87,7 +87,7 @@ export const LocalModelFitSchema = z.object({
|
|
|
87
87
|
export type LocalModelFitResponse = z.infer<typeof LocalModelFitSchema>;
|
|
88
88
|
|
|
89
89
|
export const endpointsContract = {
|
|
90
|
-
models:
|
|
90
|
+
models: procedure
|
|
91
91
|
.route({
|
|
92
92
|
method: "GET",
|
|
93
93
|
path: "/endpoints/{id}/models",
|
|
@@ -97,7 +97,7 @@ export const endpointsContract = {
|
|
|
97
97
|
})
|
|
98
98
|
.input(CapabilityIdParamSchema)
|
|
99
99
|
.output(ModelsSchema),
|
|
100
|
-
trial:
|
|
100
|
+
trial: procedure
|
|
101
101
|
.route({
|
|
102
102
|
method: "GET",
|
|
103
103
|
path: "/endpoints/trial/status",
|
|
@@ -108,7 +108,7 @@ export const endpointsContract = {
|
|
|
108
108
|
.output(TrialStatusSchema),
|
|
109
109
|
// Sized against this machine rather than a table in the browser, because the numbers that matter (a cgroup cap, a
|
|
110
110
|
// GPU that may not be passed through, weights already on disk) are only knowable in here.
|
|
111
|
-
localModelFit:
|
|
111
|
+
localModelFit: procedure
|
|
112
112
|
.route({
|
|
113
113
|
method: "GET",
|
|
114
114
|
path: "/endpoints/local-model/fit",
|
|
@@ -119,7 +119,7 @@ export const endpointsContract = {
|
|
|
119
119
|
.output(LocalModelFitSchema),
|
|
120
120
|
// Start or stop fetching the instant model's weights before anyone has asked for them, so the first local turn does
|
|
121
121
|
// not begin with a download. Idempotent: starting twice joins the transfer already running.
|
|
122
|
-
localModelPrefetch:
|
|
122
|
+
localModelPrefetch: procedure
|
|
123
123
|
.route({
|
|
124
124
|
method: "POST",
|
|
125
125
|
path: "/endpoints/local-model/prefetch",
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { streamOf } from "../protocol/routes.js";
|
|
3
3
|
import { IntenticLineSchema } from "../events/system-events.js";
|
|
4
4
|
import { ExitCountriesSchema, ExitIdParamSchema, ExitListSchema, ExitObservationSchema, ExitUseInputSchema } from "../schemas/exit.js";
|
|
5
5
|
import { OkSchema } from "../schemas/shared.js";
|
|
6
6
|
|
|
7
|
+
// The agent's `exit` CLI operates these on the agent token; a control token never reaches them.
|
|
8
|
+
const exitRoute = procedure.meta({ agent: true, control: "never" });
|
|
9
|
+
|
|
7
10
|
// An exit is added as an `exit` capability; started, moved and rotated here, since switching country is a
|
|
8
11
|
// runtime operation done both by the operator and by the agent's `exit` command on PATH. Each exit publishes an opt-in
|
|
9
12
|
// SOCKS proxy; the sandbox's default route, model endpoint and reachability tunnel never move.
|
|
10
13
|
export const exitContract = {
|
|
11
14
|
// Drives the capability card, the account picker and `geo list` (the CLI is `geo`; `exit` is a shell builtin).
|
|
12
|
-
list:
|
|
15
|
+
list: exitRoute
|
|
13
16
|
.route({
|
|
14
17
|
method: "GET",
|
|
15
18
|
path: "/exit",
|
|
@@ -19,7 +22,7 @@ export const exitContract = {
|
|
|
19
22
|
})
|
|
20
23
|
.output(ExitListSchema),
|
|
21
24
|
// "Provider" is Tor's directory, VPN Gate's CSV, or pasted confs; this is what auto-fills the country picker.
|
|
22
|
-
countries:
|
|
25
|
+
countries: exitRoute
|
|
23
26
|
.route({
|
|
24
27
|
method: "GET",
|
|
25
28
|
path: "/exit/{id}/countries",
|
|
@@ -29,7 +32,7 @@ export const exitContract = {
|
|
|
29
32
|
})
|
|
30
33
|
.input(ExitIdParamSchema)
|
|
31
34
|
.output(ExitCountriesSchema),
|
|
32
|
-
start:
|
|
35
|
+
start: exitRoute
|
|
33
36
|
.route({
|
|
34
37
|
method: "POST",
|
|
35
38
|
path: "/exit/{id}/start",
|
|
@@ -39,7 +42,7 @@ export const exitContract = {
|
|
|
39
42
|
})
|
|
40
43
|
.input(ExitIdParamSchema)
|
|
41
44
|
.output(streamOf(IntenticLineSchema)),
|
|
42
|
-
use:
|
|
45
|
+
use: exitRoute
|
|
43
46
|
.route({
|
|
44
47
|
method: "POST",
|
|
45
48
|
path: "/exit/{id}/use",
|
|
@@ -50,7 +53,7 @@ export const exitContract = {
|
|
|
50
53
|
.input(ExitUseInputSchema)
|
|
51
54
|
.output(streamOf(IntenticLineSchema)),
|
|
52
55
|
// Cheap on tor (a control-port signal); a re-dial to another server for everything else.
|
|
53
|
-
rotate:
|
|
56
|
+
rotate: exitRoute
|
|
54
57
|
.route({
|
|
55
58
|
method: "POST",
|
|
56
59
|
path: "/exit/{id}/rotate",
|
|
@@ -60,7 +63,7 @@ export const exitContract = {
|
|
|
60
63
|
})
|
|
61
64
|
.input(ExitIdParamSchema)
|
|
62
65
|
.output(streamOf(IntenticLineSchema)),
|
|
63
|
-
check:
|
|
66
|
+
check: exitRoute
|
|
64
67
|
.route({
|
|
65
68
|
method: "POST",
|
|
66
69
|
path: "/exit/{id}/check",
|
|
@@ -70,7 +73,7 @@ export const exitContract = {
|
|
|
70
73
|
})
|
|
71
74
|
.input(ExitIdParamSchema)
|
|
72
75
|
.output(ExitObservationSchema),
|
|
73
|
-
stop:
|
|
76
|
+
stop: exitRoute
|
|
74
77
|
.route({
|
|
75
78
|
method: "POST",
|
|
76
79
|
path: "/exit/{id}/stop",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { procedure } from "../protocol/route-meta.js";
|
|
2
2
|
import { CapabilityIdParamSchema } from "../schemas/capabilities.js";
|
|
3
3
|
import {
|
|
4
4
|
ExtensionEnabledInputSchema,
|
|
@@ -24,7 +24,7 @@ import { OkSchema } from "../schemas/shared.js";
|
|
|
24
24
|
// Installed extensions resolved to their approved manifests. The bundle itself is a plain Hono route, `GET
|
|
25
25
|
// /extensions/{id}/bundle`, not part of this oRPC contract: raw ESM bytes aren't a JSON payload.
|
|
26
26
|
export const extensionsContract = {
|
|
27
|
-
list:
|
|
27
|
+
list: procedure
|
|
28
28
|
.route({
|
|
29
29
|
method: "GET",
|
|
30
30
|
path: "/extensions",
|
|
@@ -34,7 +34,7 @@ export const extensionsContract = {
|
|
|
34
34
|
})
|
|
35
35
|
.output(ExtensionsListSchema),
|
|
36
36
|
// Writes into `.intentic/config/workspace-extensions/<name>/`.
|
|
37
|
-
create:
|
|
37
|
+
create: procedure
|
|
38
38
|
.route({
|
|
39
39
|
method: "POST",
|
|
40
40
|
path: "/extensions/workspace",
|
|
@@ -46,7 +46,7 @@ export const extensionsContract = {
|
|
|
46
46
|
.output(WorkspaceExtensionCreatedSchema),
|
|
47
47
|
// Read the plan first, then send the removal: the plan is the only place the owner is told what else goes, and the
|
|
48
48
|
// connections it names are not derivable from the manifest alone.
|
|
49
|
-
removalPlan:
|
|
49
|
+
removalPlan: procedure
|
|
50
50
|
.route({
|
|
51
51
|
method: "GET",
|
|
52
52
|
path: "/extensions/{id}/removal",
|
|
@@ -56,7 +56,7 @@ export const extensionsContract = {
|
|
|
56
56
|
})
|
|
57
57
|
.input(CapabilityIdParamSchema)
|
|
58
58
|
.output(ExtensionRemovalPlanSchema),
|
|
59
|
-
remove:
|
|
59
|
+
remove: procedure
|
|
60
60
|
.route({
|
|
61
61
|
method: "POST",
|
|
62
62
|
path: "/extensions/{id}/remove",
|
|
@@ -66,7 +66,7 @@ export const extensionsContract = {
|
|
|
66
66
|
})
|
|
67
67
|
.input(CapabilityIdParamSchema)
|
|
68
68
|
.output(ExtensionRemovedSchema),
|
|
69
|
-
settings:
|
|
69
|
+
settings: procedure
|
|
70
70
|
.route({
|
|
71
71
|
method: "GET",
|
|
72
72
|
path: "/extensions/{id}/settings",
|
|
@@ -75,7 +75,7 @@ export const extensionsContract = {
|
|
|
75
75
|
})
|
|
76
76
|
.input(CapabilityIdParamSchema)
|
|
77
77
|
.output(ExtensionSettingsSchema),
|
|
78
|
-
setSettings:
|
|
78
|
+
setSettings: procedure
|
|
79
79
|
.route({
|
|
80
80
|
method: "POST",
|
|
81
81
|
path: "/extensions/{id}/settings",
|
|
@@ -86,7 +86,7 @@ export const extensionsContract = {
|
|
|
86
86
|
.input(ExtensionSettingsInputSchema)
|
|
87
87
|
.output(OkSchema),
|
|
88
88
|
// The Extensions tab states which of these apply to a given extension.
|
|
89
|
-
setEnabled:
|
|
89
|
+
setEnabled: procedure
|
|
90
90
|
.route({
|
|
91
91
|
method: "POST",
|
|
92
92
|
path: "/extensions/{id}/enabled",
|
|
@@ -97,7 +97,7 @@ export const extensionsContract = {
|
|
|
97
97
|
.input(ExtensionEnabledInputSchema)
|
|
98
98
|
.output(OkSchema),
|
|
99
99
|
// The permission gate that produces these counts runs in the browser (apiImpl.ts).
|
|
100
|
-
recordUsage:
|
|
100
|
+
recordUsage: procedure
|
|
101
101
|
.route({
|
|
102
102
|
method: "POST",
|
|
103
103
|
path: "/extensions/usage",
|
|
@@ -107,7 +107,7 @@ export const extensionsContract = {
|
|
|
107
107
|
})
|
|
108
108
|
.input(ExtensionUsageBatchSchema)
|
|
109
109
|
.output(OkSchema),
|
|
110
|
-
readiness:
|
|
110
|
+
readiness: procedure
|
|
111
111
|
.route({
|
|
112
112
|
method: "GET",
|
|
113
113
|
path: "/extensions/{id}/readiness",
|
|
@@ -119,7 +119,7 @@ export const extensionsContract = {
|
|
|
119
119
|
.output(ExtensionReadinessSchema),
|
|
120
120
|
// The extensions list itself carries what the periodic registry check found (update/advisory/health per row); these
|
|
121
121
|
// routes are the verbs around it.
|
|
122
|
-
checkUpdates:
|
|
122
|
+
checkUpdates: procedure
|
|
123
123
|
.route({
|
|
124
124
|
method: "POST",
|
|
125
125
|
path: "/extensions/updates/check",
|
|
@@ -128,7 +128,7 @@ export const extensionsContract = {
|
|
|
128
128
|
"Compares every installed extension against its source and reports what is newer, what carries an advisory and what looks unhealthy. This also happens on a schedule; call it to check on demand.",
|
|
129
129
|
})
|
|
130
130
|
.output(ExtensionUpdatesCheckedSchema),
|
|
131
|
-
updatePreview:
|
|
131
|
+
updatePreview: procedure
|
|
132
132
|
.route({
|
|
133
133
|
method: "POST",
|
|
134
134
|
path: "/extensions/{id}/update/preview",
|
|
@@ -138,7 +138,7 @@ export const extensionsContract = {
|
|
|
138
138
|
})
|
|
139
139
|
.input(ExtensionUpdateActionSchema)
|
|
140
140
|
.output(ExtensionUpdatePreviewSchema),
|
|
141
|
-
applyUpdate:
|
|
141
|
+
applyUpdate: procedure
|
|
142
142
|
.route({
|
|
143
143
|
method: "POST",
|
|
144
144
|
path: "/extensions/{id}/update",
|
|
@@ -148,7 +148,7 @@ export const extensionsContract = {
|
|
|
148
148
|
})
|
|
149
149
|
.input(ExtensionUpdateActionSchema)
|
|
150
150
|
.output(ExtensionUpdateAppliedSchema),
|
|
151
|
-
revert:
|
|
151
|
+
revert: procedure
|
|
152
152
|
.route({
|
|
153
153
|
method: "POST",
|
|
154
154
|
path: "/extensions/{id}/revert",
|
|
@@ -157,7 +157,7 @@ export const extensionsContract = {
|
|
|
157
157
|
})
|
|
158
158
|
.input(CapabilityIdParamSchema)
|
|
159
159
|
.output(ExtensionUpdateAppliedSchema),
|
|
160
|
-
setUpdatePolicy:
|
|
160
|
+
setUpdatePolicy: procedure
|
|
161
161
|
.route({
|
|
162
162
|
method: "POST",
|
|
163
163
|
path: "/extensions/{id}/update-policy",
|
|
@@ -168,7 +168,7 @@ export const extensionsContract = {
|
|
|
168
168
|
.input(ExtensionUpdatePolicyInputSchema)
|
|
169
169
|
.output(OkSchema),
|
|
170
170
|
// Declared via `contributes.processes`; the terminals list shows each one's log as `svc-ext-<id>-<name>`.
|
|
171
|
-
processStatus:
|
|
171
|
+
processStatus: procedure
|
|
172
172
|
.route({
|
|
173
173
|
method: "GET",
|
|
174
174
|
path: "/extensions/{id}/processes/{name}",
|
|
@@ -177,7 +177,7 @@ export const extensionsContract = {
|
|
|
177
177
|
})
|
|
178
178
|
.input(ExtensionProcessParamSchema)
|
|
179
179
|
.output(ExtensionProcessStatusSchema),
|
|
180
|
-
processStart:
|
|
180
|
+
processStart: procedure
|
|
181
181
|
.route({
|
|
182
182
|
method: "POST",
|
|
183
183
|
path: "/extensions/{id}/processes/{name}/start",
|
|
@@ -186,7 +186,7 @@ export const extensionsContract = {
|
|
|
186
186
|
})
|
|
187
187
|
.input(ExtensionProcessParamSchema)
|
|
188
188
|
.output(OkSchema),
|
|
189
|
-
processStop:
|
|
189
|
+
processStop: procedure
|
|
190
190
|
.route({
|
|
191
191
|
method: "POST",
|
|
192
192
|
path: "/extensions/{id}/processes/{name}/stop",
|