@intentic/sandbox-contract 1.226.0 → 1.227.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/contracts/activity.contract.d.ts.map +1 -1
- package/dist/contracts/activity.contract.js +17 -2
- package/dist/contracts/activity.contract.js.map +1 -1
- package/dist/contracts/agent.contract.d.ts +19 -2
- package/dist/contracts/agent.contract.d.ts.map +1 -1
- package/dist/contracts/agent.contract.js +71 -8
- package/dist/contracts/agent.contract.js.map +1 -1
- package/dist/contracts/agents.contract.d.ts +59 -0
- package/dist/contracts/agents.contract.d.ts.map +1 -1
- package/dist/contracts/agents.contract.js +164 -19
- package/dist/contracts/agents.contract.js.map +1 -1
- package/dist/contracts/automations.contract.d.ts.map +1 -1
- package/dist/contracts/automations.contract.js +78 -9
- package/dist/contracts/automations.contract.js.map +1 -1
- package/dist/contracts/capabilities.contract.d.ts.map +1 -1
- package/dist/contracts/capabilities.contract.js +98 -11
- package/dist/contracts/capabilities.contract.js.map +1 -1
- package/dist/contracts/chores.contract.d.ts.map +1 -1
- package/dist/contracts/chores.contract.js +26 -3
- package/dist/contracts/chores.contract.js.map +1 -1
- package/dist/contracts/ci.contract.d.ts.map +1 -1
- package/dist/contracts/ci.contract.js +52 -6
- package/dist/contracts/ci.contract.js.map +1 -1
- package/dist/contracts/claude.contract.d.ts.map +1 -1
- package/dist/contracts/claude.contract.js +44 -5
- package/dist/contracts/claude.contract.js.map +1 -1
- package/dist/contracts/drafts.contract.d.ts.map +1 -1
- package/dist/contracts/drafts.contract.js +26 -3
- package/dist/contracts/drafts.contract.js.map +1 -1
- package/dist/contracts/endpoints.contract.d.ts +1 -0
- package/dist/contracts/endpoints.contract.d.ts.map +1 -1
- package/dist/contracts/endpoints.contract.js +17 -2
- package/dist/contracts/endpoints.contract.js.map +1 -1
- package/dist/contracts/exit.contract.d.ts.map +1 -1
- package/dist/contracts/exit.contract.js +62 -7
- package/dist/contracts/exit.contract.js.map +1 -1
- package/dist/contracts/extensions.contract.d.ts +1 -0
- package/dist/contracts/extensions.contract.d.ts.map +1 -1
- package/dist/contracts/extensions.contract.js +124 -15
- package/dist/contracts/extensions.contract.js.map +1 -1
- package/dist/contracts/git.contract.d.ts.map +1 -1
- package/dist/contracts/git.contract.js +384 -43
- package/dist/contracts/git.contract.js.map +1 -1
- package/dist/contracts/grok.contract.d.ts.map +1 -1
- package/dist/contracts/grok.contract.js +25 -3
- package/dist/contracts/grok.contract.js.map +1 -1
- package/dist/contracts/history.contract.d.ts.map +1 -1
- package/dist/contracts/history.contract.js +35 -4
- package/dist/contracts/history.contract.js.map +1 -1
- package/dist/contracts/intentic.contract.d.ts.map +1 -1
- package/dist/contracts/intentic.contract.js +25 -3
- package/dist/contracts/intentic.contract.js.map +1 -1
- package/dist/contracts/inventory.contract.d.ts.map +1 -1
- package/dist/contracts/inventory.contract.js +26 -3
- package/dist/contracts/inventory.contract.js.map +1 -1
- package/dist/contracts/logs.contract.d.ts +17 -0
- package/dist/contracts/logs.contract.d.ts.map +1 -1
- package/dist/contracts/logs.contract.js +27 -3
- package/dist/contracts/logs.contract.js.map +1 -1
- package/dist/contracts/loops.contract.d.ts.map +1 -1
- package/dist/contracts/loops.contract.js +52 -6
- package/dist/contracts/loops.contract.js.map +1 -1
- package/dist/contracts/panels.contract.d.ts.map +1 -1
- package/dist/contracts/panels.contract.js +26 -3
- package/dist/contracts/panels.contract.js.map +1 -1
- package/dist/contracts/personas.contract.d.ts.map +1 -1
- package/dist/contracts/personas.contract.js +71 -8
- package/dist/contracts/personas.contract.js.map +1 -1
- package/dist/contracts/ports.contract.d.ts.map +1 -1
- package/dist/contracts/ports.contract.js +26 -3
- package/dist/contracts/ports.contract.js.map +1 -1
- package/dist/contracts/prepush.contract.d.ts.map +1 -1
- package/dist/contracts/prepush.contract.js +24 -3
- package/dist/contracts/prepush.contract.js.map +1 -1
- package/dist/contracts/providers.contract.d.ts +1 -0
- package/dist/contracts/providers.contract.d.ts.map +1 -1
- package/dist/contracts/providers.contract.js +9 -1
- package/dist/contracts/providers.contract.js.map +1 -1
- package/dist/contracts/public.contract.d.ts.map +1 -1
- package/dist/contracts/public.contract.js +26 -3
- package/dist/contracts/public.contract.js.map +1 -1
- package/dist/contracts/push.contract.d.ts.map +1 -1
- package/dist/contracts/push.contract.js +35 -4
- package/dist/contracts/push.contract.js.map +1 -1
- package/dist/contracts/secrets.contract.d.ts.map +1 -1
- package/dist/contracts/secrets.contract.js +43 -5
- package/dist/contracts/secrets.contract.js.map +1 -1
- package/dist/contracts/sessions.contract.d.ts +3 -0
- package/dist/contracts/sessions.contract.d.ts.map +1 -1
- package/dist/contracts/sessions.contract.js +15 -2
- package/dist/contracts/sessions.contract.js.map +1 -1
- package/dist/contracts/settings.contract.d.ts +19 -0
- package/dist/contracts/settings.contract.d.ts.map +1 -1
- package/dist/contracts/settings.contract.js +43 -5
- package/dist/contracts/settings.contract.js.map +1 -1
- package/dist/contracts/share.contract.d.ts.map +1 -1
- package/dist/contracts/share.contract.js +35 -4
- package/dist/contracts/share.contract.js.map +1 -1
- package/dist/contracts/skills.contract.d.ts.map +1 -1
- package/dist/contracts/skills.contract.js +35 -4
- package/dist/contracts/skills.contract.js.map +1 -1
- package/dist/contracts/system.contract.d.ts +7 -0
- package/dist/contracts/system.contract.d.ts.map +1 -1
- package/dist/contracts/system.contract.js +107 -14
- package/dist/contracts/system.contract.js.map +1 -1
- package/dist/contracts/translator.contract.d.ts.map +1 -1
- package/dist/contracts/translator.contract.js +29 -4
- package/dist/contracts/translator.contract.js.map +1 -1
- package/dist/contracts/usage.contract.d.ts.map +1 -1
- package/dist/contracts/usage.contract.js +9 -1
- package/dist/contracts/usage.contract.js.map +1 -1
- package/dist/contracts/vpn.contract.d.ts.map +1 -1
- package/dist/contracts/vpn.contract.js +32 -4
- package/dist/contracts/vpn.contract.js.map +1 -1
- package/dist/contracts/workflows.contract.d.ts.map +1 -1
- package/dist/contracts/workflows.contract.js +70 -8
- package/dist/contracts/workflows.contract.js.map +1 -1
- package/dist/contracts/workspace.contract.d.ts.map +1 -1
- package/dist/contracts/workspace.contract.js +216 -25
- package/dist/contracts/workspace.contract.js.map +1 -1
- package/dist/events.d.ts +46 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +193 -88
- package/dist/events.js.map +1 -1
- package/dist/history-state.d.ts.map +1 -1
- package/dist/history-state.js +1 -0
- package/dist/history-state.js.map +1 -1
- package/dist/index.d.ts +197 -70
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/prompt-complexity.d.ts +9 -1
- package/dist/prompt-complexity.d.ts.map +1 -1
- package/dist/prompt-complexity.js +13 -5
- package/dist/prompt-complexity.js.map +1 -1
- package/dist/request-id.d.ts +3 -0
- package/dist/request-id.d.ts.map +1 -0
- package/dist/request-id.js +3 -0
- package/dist/request-id.js.map +1 -0
- package/dist/schemas.d.ts +89 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +2912 -1276
- package/dist/schemas.js.map +1 -1
- package/dist/starter.d.ts +3 -0
- package/dist/starter.d.ts.map +1 -0
- package/dist/starter.js +3 -0
- package/dist/starter.js.map +1 -0
- package/package.json +5 -4
- package/src/contract-lock.test.ts +8 -2
- package/src/contracts/activity.contract.ts +18 -2
- package/src/contracts/agent.contract.ts +78 -8
- package/src/contracts/agents.contract.ts +180 -19
- package/src/contracts/automations.contract.ts +80 -9
- package/src/contracts/capabilities.contract.ts +106 -11
- package/src/contracts/chores.contract.ts +29 -3
- package/src/contracts/ci.contract.ts +55 -6
- package/src/contracts/claude.contract.ts +47 -5
- package/src/contracts/drafts.contract.ts +26 -3
- package/src/contracts/endpoints.contract.ts +19 -2
- package/src/contracts/exit.contract.ts +69 -7
- package/src/contracts/extensions.contract.ts +134 -15
- package/src/contracts/git.contract.ts +421 -43
- package/src/contracts/grok.contract.ts +26 -3
- package/src/contracts/history.contract.ts +37 -4
- package/src/contracts/intentic.contract.ts +28 -3
- package/src/contracts/inventory.contract.ts +27 -3
- package/src/contracts/logs.contract.ts +41 -4
- package/src/contracts/loops.contract.ts +58 -6
- package/src/contracts/panels.contract.ts +26 -3
- package/src/contracts/personas.contract.ts +77 -8
- package/src/contracts/ports.contract.ts +27 -3
- package/src/contracts/prepush.contract.ts +26 -3
- package/src/contracts/providers.contract.ts +10 -1
- package/src/contracts/public.contract.ts +29 -3
- package/src/contracts/push.contract.ts +37 -4
- package/src/contracts/secrets.contract.ts +46 -5
- package/src/contracts/sessions.contract.ts +16 -2
- package/src/contracts/settings.contract.ts +46 -5
- package/src/contracts/share.contract.ts +37 -4
- package/src/contracts/skills.contract.ts +39 -4
- package/src/contracts/system.contract.ts +119 -14
- package/src/contracts/translator.contract.ts +32 -4
- package/src/contracts/usage.contract.ts +10 -1
- package/src/contracts/vpn.contract.ts +35 -4
- package/src/contracts/workflows.contract.ts +77 -8
- package/src/contracts/workspace.contract.ts +231 -25
- package/src/events.ts +259 -89
- package/src/history-state.ts +6 -0
- package/src/index.ts +2 -0
- package/src/prompt-complexity.test.ts +69 -0
- package/src/prompt-complexity.ts +102 -39
- package/src/request-id.ts +41 -0
- package/src/schemas.ts +3700 -1260
- package/src/starter.ts +13 -0
|
@@ -24,25 +24,86 @@ import {
|
|
|
24
24
|
// `settings`/`setSettings` carry the extension's own contributes.settings values; keys the manifest never
|
|
25
25
|
// declared are refused, the same honesty rule the host applies to runtime view/command registrations.
|
|
26
26
|
export const extensionsContract = {
|
|
27
|
-
list: oc
|
|
27
|
+
list: oc
|
|
28
|
+
.route({
|
|
29
|
+
method: "GET",
|
|
30
|
+
path: "/extensions",
|
|
31
|
+
summary: "Installed extensions",
|
|
32
|
+
description:
|
|
33
|
+
"Every extension installed here, resolved to the manifest the owner approved, which is what the app boots its extension host from. The code itself is served separately, because raw script bytes are not a JSON answer.",
|
|
34
|
+
})
|
|
35
|
+
.output(ExtensionsListSchema),
|
|
28
36
|
// Author a new extension in place: writes a running one into .intentic/config/workspace-extensions/<name>/. The only
|
|
29
37
|
// creating route here, and it exists because that directory is otherwise reachable exclusively through an
|
|
30
38
|
// agent's file tools, which is a fine way to CHANGE an extension and a poor way to meet the idea of one.
|
|
31
|
-
create: oc
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
create: oc
|
|
40
|
+
.route({
|
|
41
|
+
method: "POST",
|
|
42
|
+
path: "/extensions/workspace",
|
|
43
|
+
summary: "Write a new extension in place",
|
|
44
|
+
description:
|
|
45
|
+
"Scaffolds a working extension into this workspace and installs it. The only call here that creates one, and it exists because that folder is otherwise reachable only through an agent's file tools, which is a fine way to change an extension and a poor way to meet the idea of one.",
|
|
46
|
+
})
|
|
47
|
+
.input(WorkspaceExtensionCreateSchema)
|
|
48
|
+
.output(WorkspaceExtensionCreatedSchema),
|
|
49
|
+
settings: oc
|
|
50
|
+
.route({
|
|
51
|
+
method: "GET",
|
|
52
|
+
path: "/extensions/{id}/settings",
|
|
53
|
+
summary: "An extension's settings",
|
|
54
|
+
description: "The current values for the settings this extension declared it has.",
|
|
55
|
+
})
|
|
56
|
+
.input(CapabilityIdParamSchema)
|
|
57
|
+
.output(ExtensionSettingsSchema),
|
|
58
|
+
setSettings: oc
|
|
59
|
+
.route({
|
|
60
|
+
method: "POST",
|
|
61
|
+
path: "/extensions/{id}/settings",
|
|
62
|
+
summary: "Change an extension's settings",
|
|
63
|
+
description:
|
|
64
|
+
"Writes new values. A key the extension never declared is refused rather than quietly stored, the same honesty rule that governs everything else an extension claims.",
|
|
65
|
+
})
|
|
66
|
+
.input(ExtensionSettingsInputSchema)
|
|
67
|
+
.output(OkSchema),
|
|
34
68
|
// The owner's on/off switch. Disabling stops the extension's declared processes here and now; its agent
|
|
35
69
|
// plugin dir and PATH entry are rebuilt per turn, and an `environment` fragment only at the next image
|
|
36
70
|
// rebuild, the Extensions tab states which of those an extension actually has.
|
|
37
|
-
setEnabled: oc
|
|
71
|
+
setEnabled: oc
|
|
72
|
+
.route({
|
|
73
|
+
method: "POST",
|
|
74
|
+
path: "/extensions/{id}/enabled",
|
|
75
|
+
summary: "Turn an extension on or off",
|
|
76
|
+
description:
|
|
77
|
+
"The owner's switch. Turning one off stops its background processes at once. What it contributes to an agent's tools is rebuilt at the start of the next turn, and anything it adds to the sandbox image only at the next rebuild.",
|
|
78
|
+
})
|
|
79
|
+
.input(ExtensionEnabledInputSchema)
|
|
80
|
+
.output(OkSchema),
|
|
38
81
|
// The host reporting which declared routes it just let through. Written by the browser because that is where
|
|
39
82
|
// the permission gate runs (apiImpl.ts), the daemon sees an extension's traffic as ordinary authenticated
|
|
40
83
|
// requests and cannot tell which extension, or which declared entry, any of it belongs to.
|
|
41
|
-
recordUsage: oc
|
|
84
|
+
recordUsage: oc
|
|
85
|
+
.route({
|
|
86
|
+
method: "POST",
|
|
87
|
+
path: "/extensions/{id}/usage",
|
|
88
|
+
summary: "Record what an extension just used",
|
|
89
|
+
description:
|
|
90
|
+
"Written by the app rather than measured by the daemon, because the permission gate runs in the browser: from the sandbox's side an extension's traffic is indistinguishable from anyone else's. This is how the record of which powers an extension actually exercises gets kept.",
|
|
91
|
+
})
|
|
92
|
+
.input(ExtensionUsageInputSchema)
|
|
93
|
+
.output(OkSchema),
|
|
42
94
|
/* Whether this extension is fit for somebody else to run, the checks answerable from its files alone. Read
|
|
43
95
|
* on demand rather than carried on the list: it reads the bundle off disk per extension, and it is looked at
|
|
44
96
|
* when an author is about to publish, not every time the tab renders. */
|
|
45
|
-
readiness: oc
|
|
97
|
+
readiness: oc
|
|
98
|
+
.route({
|
|
99
|
+
method: "GET",
|
|
100
|
+
path: "/extensions/{id}/readiness",
|
|
101
|
+
summary: "Whether an extension is fit to share",
|
|
102
|
+
description:
|
|
103
|
+
"The checks that can be answered from an extension's own files, for an author about to publish. Read on demand rather than carried on the list, because it reads the code off disk each time.",
|
|
104
|
+
})
|
|
105
|
+
.input(CapabilityIdParamSchema)
|
|
106
|
+
.output(ExtensionReadinessSchema),
|
|
46
107
|
/* The update lifecycle for a GIT-INSTALLED extension. The list carries what the periodic registry check
|
|
47
108
|
* found (update/advisory/health per row); these are the verbs around it. `checkUpdates` runs the comparison
|
|
48
109
|
* now (the tab's "check now"). `updatePreview` stages the offered sha and answers with the version story +
|
|
@@ -51,25 +112,83 @@ export const extensionsContract = {
|
|
|
51
112
|
* checkout one back), restart, health-watch, on the EXISTING capability config, so a private-source token
|
|
52
113
|
* survives what a bare re-add would lose. `revert` swaps the kept-previous checkout back. Update and revert
|
|
53
114
|
* change the code that runs, so like install they are owner-only. */
|
|
54
|
-
checkUpdates: oc
|
|
115
|
+
checkUpdates: oc
|
|
116
|
+
.route({
|
|
117
|
+
method: "POST",
|
|
118
|
+
path: "/extensions/updates/check",
|
|
119
|
+
summary: "Look for extension updates now",
|
|
120
|
+
description:
|
|
121
|
+
"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.",
|
|
122
|
+
})
|
|
123
|
+
.output(ExtensionUpdatesCheckedSchema),
|
|
55
124
|
updatePreview: oc
|
|
56
|
-
.route({
|
|
125
|
+
.route({
|
|
126
|
+
method: "POST",
|
|
127
|
+
path: "/extensions/{id}/update/preview",
|
|
128
|
+
summary: "What an update would change",
|
|
129
|
+
description:
|
|
130
|
+
"The read before the click: which versions are involved and exactly which powers the new code asks for that the running one does not. Costs one throwaway copy of the source, the same as browsing a registry entry.",
|
|
131
|
+
})
|
|
57
132
|
.input(ExtensionUpdateActionSchema)
|
|
58
133
|
.output(ExtensionUpdatePreviewSchema),
|
|
59
134
|
applyUpdate: oc
|
|
60
|
-
.route({
|
|
135
|
+
.route({
|
|
136
|
+
method: "POST",
|
|
137
|
+
path: "/extensions/{id}/update",
|
|
138
|
+
summary: "Update an extension",
|
|
139
|
+
description:
|
|
140
|
+
"The whole swap as one transaction: fetch, check, quiet the running one, replace it while keeping the outgoing copy one step back, restart and watch it come up. The existing configuration is kept, so a token for a private source survives what removing and re-adding would lose. Owner only, because it changes what code runs.",
|
|
141
|
+
})
|
|
61
142
|
.input(ExtensionUpdateActionSchema)
|
|
62
143
|
.output(ExtensionUpdateAppliedSchema),
|
|
63
|
-
revert: oc
|
|
144
|
+
revert: oc
|
|
145
|
+
.route({
|
|
146
|
+
method: "POST",
|
|
147
|
+
path: "/extensions/{id}/revert",
|
|
148
|
+
summary: "Go back to the previous version",
|
|
149
|
+
description: "Swaps the copy kept from before the last update back into place. Owner only, for the same reason updating is.",
|
|
150
|
+
})
|
|
151
|
+
.input(CapabilityIdParamSchema)
|
|
152
|
+
.output(ExtensionUpdateAppliedSchema),
|
|
64
153
|
// The owner's standing answer per extension (notify / agent / auto, and the advisory opt-out), see
|
|
65
154
|
// ExtensionUpdatePolicySchema for what each rung means.
|
|
66
|
-
setUpdatePolicy: oc
|
|
155
|
+
setUpdatePolicy: oc
|
|
156
|
+
.route({
|
|
157
|
+
method: "POST",
|
|
158
|
+
path: "/extensions/{id}/update-policy",
|
|
159
|
+
summary: "How an extension should handle its own updates",
|
|
160
|
+
description:
|
|
161
|
+
"The owner's standing answer for one extension: tell me, have an agent look at it, or just do it. Security advisories can be opted out of separately.",
|
|
162
|
+
})
|
|
163
|
+
.input(ExtensionUpdatePolicyInputSchema)
|
|
164
|
+
.output(OkSchema),
|
|
67
165
|
// Declared background processes (contributes.processes): tmux-managed through the panel machinery
|
|
68
166
|
// (session `panel-ext-<id>-<name>`, PORT-assigned, optional tunneled preview route).
|
|
69
167
|
processStatus: oc
|
|
70
|
-
.route({
|
|
168
|
+
.route({
|
|
169
|
+
method: "GET",
|
|
170
|
+
path: "/extensions/{id}/processes/{name}",
|
|
171
|
+
summary: "Whether an extension's background process is up",
|
|
172
|
+
description: "The state of one process an extension declared, with the port it was given and its preview address if it has one.",
|
|
173
|
+
})
|
|
71
174
|
.input(ExtensionProcessParamSchema)
|
|
72
175
|
.output(ExtensionProcessStatusSchema),
|
|
73
|
-
processStart: oc
|
|
74
|
-
|
|
176
|
+
processStart: oc
|
|
177
|
+
.route({
|
|
178
|
+
method: "POST",
|
|
179
|
+
path: "/extensions/{id}/processes/{name}/start",
|
|
180
|
+
summary: "Start an extension's background process",
|
|
181
|
+
description: "Brings one of an extension's declared processes up in an attachable terminal.",
|
|
182
|
+
})
|
|
183
|
+
.input(ExtensionProcessParamSchema)
|
|
184
|
+
.output(OkSchema),
|
|
185
|
+
processStop: oc
|
|
186
|
+
.route({
|
|
187
|
+
method: "POST",
|
|
188
|
+
path: "/extensions/{id}/processes/{name}/stop",
|
|
189
|
+
summary: "Stop an extension's background process",
|
|
190
|
+
description: "Shuts one of an extension's declared processes down and frees its port.",
|
|
191
|
+
})
|
|
192
|
+
.input(ExtensionProcessParamSchema)
|
|
193
|
+
.output(OkSchema),
|
|
75
194
|
};
|