@alisio/alisio-code 0.1.0-alpha.25 → 0.1.0-alpha.26

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.
@@ -17,6 +17,11 @@ export const defaultConfig = {
17
17
  mcp: { allow: false },
18
18
  websearch: { provider: undefined },
19
19
  pluginHooks: { timeoutMs: 15_000 },
20
+ analysis: {
21
+ enabled: true,
22
+ limits: { timeoutMs: 120_000 },
23
+ retention: { jobsDays: 30, intermediateDays: 7, artifactsDays: 0 },
24
+ },
20
25
  };
21
26
  /** Strictly ascending number sequence with exact step arithmetic (0.85 stays 0.85). */
22
27
  function stepValues(start, end, step) {
@@ -152,6 +157,52 @@ export const SETTINGS_DEFINITIONS = [
152
157
  read: (config) => config.pluginHooks.timeoutMs,
153
158
  description: "Host-enforced plugin hook timeout. Hooks (compaction, session start/end) are aborted when they exceed it; raise it for plugins that summarize slowly.",
154
159
  },
160
+ {
161
+ id: "analysis.enabled",
162
+ label: "Data analysis",
163
+ category: "Data analysis",
164
+ valueType: "boolean",
165
+ values: [false, true],
166
+ read: (config) => config.analysis.enabled,
167
+ description: "Python analysis (python_run), downloadable artifacts and tabular data tools. Off removes them. Applies the next time Alisio starts.",
168
+ },
169
+ {
170
+ id: "analysis.limits.timeoutMs",
171
+ label: "Analysis timeout",
172
+ category: "Data analysis",
173
+ valueType: "number",
174
+ // Displayed in seconds; the app host multiplies by 1000 before persisting milliseconds.
175
+ values: [30, 60, 120, 300, 600, 900],
176
+ read: (config) => config.analysis.limits.timeoutMs / 1000,
177
+ description: "Maximum run time of one python_run call, in seconds. The model can ask for less, never more. Applied from the next call.",
178
+ },
179
+ {
180
+ id: "analysis.retention.jobsDays",
181
+ label: "Keep analysis jobs (days)",
182
+ category: "Data analysis",
183
+ valueType: "number",
184
+ values: [0, 7, 14, 30, 60, 90, 180, 365],
185
+ read: (config) => config.analysis.retention.jobsDays,
186
+ description: "Logs and staging of an analysis job, its script once no artifact is ready, and datasets unused for this long. 0 never deletes them. Swept at most once a day.",
187
+ },
188
+ {
189
+ id: "analysis.retention.intermediateDays",
190
+ label: "Keep intermediates (days)",
191
+ category: "Data analysis",
192
+ valueType: "number",
193
+ values: [0, 1, 3, 7, 14, 30, 60],
194
+ read: (config) => config.analysis.retention.intermediateDays,
195
+ description: "The scratch folder (work/) of an analysis job. 0 never deletes it. Swept at most once a day.",
196
+ },
197
+ {
198
+ id: "analysis.retention.artifactsDays",
199
+ label: "Expire artifacts after (days)",
200
+ category: "Data analysis",
201
+ valueType: "number",
202
+ values: [0, 7, 30, 90, 180, 365, 730],
203
+ read: (config) => config.analysis.retention.artifactsDays,
204
+ description: "Artifacts older than this expire: their files are deleted and the card shows Expired (Rerun can recreate them). 0 keeps them forever.",
205
+ },
155
206
  {
156
207
  id: "tui.paddingX",
157
208
  label: "Editor padding",
package/dist/tui/state.js CHANGED
@@ -778,6 +778,16 @@ export function isUiBlock(value) {
778
778
  return false;
779
779
  const block = value;
780
780
  switch (block.kind) {
781
+ case "artifact": {
782
+ const a = block.artifact;
783
+ return (!!a &&
784
+ typeof a === "object" &&
785
+ typeof a.id === "string" &&
786
+ typeof a.fileName === "string" &&
787
+ typeof a.kind === "string" &&
788
+ typeof a.bytes === "number" &&
789
+ typeof a.status === "string");
790
+ }
781
791
  case "table":
782
792
  return (Array.isArray(block.columns) &&
783
793
  block.columns.every((c) => typeof c === "string") &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alisio/alisio-code",
3
- "version": "0.1.0-alpha.25",
3
+ "version": "0.1.0-alpha.26",
4
4
  "description": "Alisio: an extensible, provider-agnostic coding-agent harness for your terminal. TUI, OpenAI-compatible providers, permissioned local tools, context compaction, persistent memory and a typed plugin SDK.",
5
5
  "author": "Gustavo Gutiérrez",
6
6
  "license": "MIT",
@@ -45,12 +45,12 @@
45
45
  "alisio": "./dist/main.js"
46
46
  },
47
47
  "dependencies": {
48
- "@alisio/core": "0.1.0-alpha.21",
48
+ "@alisio/core": "0.1.0-alpha.22",
49
49
  "@alisio/plugin-memory": "0.1.0-alpha.9",
50
50
  "@alisio/plugin-openai-compatible": "0.1.0-alpha.9",
51
51
  "@alisio/plugin-subagents": "0.1.0-alpha.11",
52
- "@alisio/sdk": "0.1.0-alpha.17",
53
- "@alisio/server": "0.1.0-alpha.5",
52
+ "@alisio/sdk": "0.1.0-alpha.18",
53
+ "@alisio/server": "0.1.0-alpha.6",
54
54
  "@earendil-works/pi-tui": "0.87.1",
55
55
  "commander": "15.0.0"
56
56
  },