zelari-code 1.20.0 → 1.22.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/cli/app.js +2 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/budget/historySummary.js +127 -0
- package/dist/cli/budget/historySummary.js.map +1 -0
- package/dist/cli/budget/llmCompact.js +114 -0
- package/dist/cli/budget/llmCompact.js.map +1 -0
- package/dist/cli/budget/tokenBudget.js +111 -24
- package/dist/cli/budget/tokenBudget.js.map +1 -1
- package/dist/cli/components/StatusBar.js +4 -1
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/hooks/conversationContext.js +7 -0
- package/dist/cli/hooks/conversationContext.js.map +1 -1
- package/dist/cli/hooks/historyCompaction.js +77 -14
- package/dist/cli/hooks/historyCompaction.js.map +1 -1
- package/dist/cli/hooks/permissionPicker.js +76 -0
- package/dist/cli/hooks/permissionPicker.js.map +1 -0
- package/dist/cli/hooks/useChatTurn.js +32 -5
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/main.bundled.js +1483 -579
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/plugins/registry.js +0 -13
- package/dist/cli/plugins/registry.js.map +1 -1
- package/dist/cli/runHeadless.js +30 -1
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/toolPermissions.js +123 -0
- package/dist/cli/safety/toolPermissions.js.map +1 -0
- package/dist/cli/sessionTodos.js +67 -0
- package/dist/cli/sessionTodos.js.map +1 -0
- package/dist/cli/toolRegistry.js +134 -43
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/skillTool.js +78 -0
- package/dist/cli/tools/skillTool.js.map +1 -0
- package/dist/cli/tools/taskTool.js +81 -47
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/dist/cli/tools/todoTools.js +68 -0
- package/dist/cli/tools/todoTools.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* todo_write / todo_read — session task list for multi-step agent work.
|
|
3
|
+
*
|
|
4
|
+
* @since v1.21.0
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { typedOk, } from '@zelari/core/harness/tools/toolTypes';
|
|
8
|
+
import { formatTodosForModel, listSessionTodos, writeSessionTodos, } from '../sessionTodos.js';
|
|
9
|
+
const StatusSchema = z.enum(['pending', 'in_progress', 'completed', 'cancelled']);
|
|
10
|
+
const TodoItemSchema = z.object({
|
|
11
|
+
id: z.string().min(1).max(64).optional().describe('Stable id; auto-generated if omitted'),
|
|
12
|
+
content: z.string().min(1).max(500).describe('Short task description'),
|
|
13
|
+
status: StatusSchema.optional().describe('Default pending'),
|
|
14
|
+
});
|
|
15
|
+
const WriteSchema = z.object({
|
|
16
|
+
todos: z
|
|
17
|
+
.array(TodoItemSchema)
|
|
18
|
+
.min(1)
|
|
19
|
+
.max(40)
|
|
20
|
+
.describe('Todo items to set (replace list unless merge=true)'),
|
|
21
|
+
merge: z
|
|
22
|
+
.boolean()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('If true, upsert by id and keep unlisted items. Default false = replace.'),
|
|
25
|
+
});
|
|
26
|
+
const ReadSchema = z.object({
|
|
27
|
+
// empty object so models can call with {}
|
|
28
|
+
_unused: z.string().optional(),
|
|
29
|
+
});
|
|
30
|
+
export function createTodoWriteTool() {
|
|
31
|
+
return {
|
|
32
|
+
name: 'todo_write',
|
|
33
|
+
description: 'Create or update the session todo list for this multi-step task. ' +
|
|
34
|
+
'Use to track progress (pending → in_progress → completed). Prefer small, concrete items. ' +
|
|
35
|
+
'Call todo_read to inspect current list. Not for durable product plans (.zelari/plan.json).',
|
|
36
|
+
permissions: ['read'],
|
|
37
|
+
timeoutMs: 5_000,
|
|
38
|
+
inputSchema: WriteSchema,
|
|
39
|
+
execute: async (input) => {
|
|
40
|
+
const list = writeSessionTodos(input.todos.map((t) => ({
|
|
41
|
+
id: t.id,
|
|
42
|
+
content: t.content,
|
|
43
|
+
status: (t.status ?? 'pending'),
|
|
44
|
+
})), { merge: input.merge === true });
|
|
45
|
+
return typedOk({
|
|
46
|
+
todos: list,
|
|
47
|
+
formatted: formatTodosForModel(list),
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createTodoReadTool() {
|
|
53
|
+
return {
|
|
54
|
+
name: 'todo_read',
|
|
55
|
+
description: 'Read the current session todo list. Use after todo_write or to recall open work mid-task.',
|
|
56
|
+
permissions: ['read'],
|
|
57
|
+
timeoutMs: 5_000,
|
|
58
|
+
inputSchema: ReadSchema,
|
|
59
|
+
execute: async () => {
|
|
60
|
+
const list = listSessionTodos();
|
|
61
|
+
return typedOk({
|
|
62
|
+
todos: list,
|
|
63
|
+
formatted: formatTodosForModel(list),
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=todoTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todoTools.js","sourceRoot":"","sources":["../../../src/cli/tools/todoTools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,OAAO,GAER,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAElF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACtE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,cAAc,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,oDAAoD,CAAC;IACjE,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;CACvF,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB;IAIjC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,mEAAmE;YACnE,2FAA2F;YAC3F,4FAA4F;QAC9F,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,iBAAiB,CAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAsB;aACrD,CAAC,CAAC,EACH,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAChC,CAAC;YACF,OAAO,OAAO,CAAC;gBACb,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAIhC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,2FAA2F;QAC7F,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;gBACb,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zelari-code",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.0",
|
|
4
4
|
"description": "Zelari Code — AI Council coding agent CLI. Multi-agent orchestration (Caronte, Nettuno, Gerione, Plutone, Minosse, Lucifero) with slash commands, provider-agnostic LLM streaming, and self-update.",
|
|
5
5
|
"author": "Anathema Studio <https://anathema-studio.com/>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@testing-library/react": "^16.3.2",
|
|
53
|
-
"@zelari/core": "1.
|
|
53
|
+
"@zelari/core": "1.22.0",
|
|
54
54
|
"@types/node": "^25.3.0",
|
|
55
55
|
"@types/react": "^19.0.10",
|
|
56
56
|
"esbuild": "^0.25.0",
|