itermbot 1.0.16 → 1.0.18

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.
Files changed (41) hide show
  1. package/.agent/run-state.json +13 -0
  2. package/.github/workflows/ci.yml +1 -1
  3. package/.github/workflows/release.yml +1 -1
  4. package/README.md +8 -0
  5. package/config/agent.yaml +13 -1
  6. package/config/app.yaml +24 -0
  7. package/config/memory.yaml +9 -3
  8. package/config/model.yaml +12 -22
  9. package/config/toolkit.yaml +55 -51
  10. package/dist/chat/response-safety.js +2 -2
  11. package/dist/chat/response-safety.js.map +1 -1
  12. package/dist/chat/task-manager.d.ts +33 -0
  13. package/dist/chat/task-manager.d.ts.map +1 -0
  14. package/dist/chat/task-manager.js +124 -0
  15. package/dist/chat/task-manager.js.map +1 -0
  16. package/dist/config.d.ts +17 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +65 -6
  19. package/dist/config.js.map +1 -1
  20. package/dist/index.js +78 -11
  21. package/dist/index.js.map +1 -1
  22. package/dist/iterm/target-panel-backend.d.ts +75 -0
  23. package/dist/iterm/target-panel-backend.d.ts.map +1 -0
  24. package/dist/iterm/target-panel-backend.js +285 -0
  25. package/dist/iterm/target-panel-backend.js.map +1 -0
  26. package/dist/startup/diagnostics.d.ts.map +1 -1
  27. package/dist/startup/diagnostics.js +5 -2
  28. package/dist/startup/diagnostics.js.map +1 -1
  29. package/package.json +2 -2
  30. package/src/chat/response-safety.ts +2 -2
  31. package/src/chat/task-manager.ts +165 -0
  32. package/src/config.ts +113 -6
  33. package/src/external-modules.d.ts +1 -2
  34. package/src/index.ts +95 -12
  35. package/src/iterm/target-panel-backend.ts +368 -0
  36. package/src/startup/diagnostics.ts +5 -2
  37. package/test/integration/live-iterm-llm.integration.test.mjs +56 -3
  38. package/test/unit/config.test.mjs +18 -5
  39. package/test/unit/target-panel-backend.test.mjs +166 -0
  40. package/test/unit/task-manager.test.mjs +58 -0
  41. package/config/skill.yaml +0 -9
@@ -0,0 +1,13 @@
1
+ {
2
+ "prompt": "Disk usage looks high. Please investigate where space is used, diagnostics only, no cleanup.\n\nTool-call rules:\n- Return strict JSON for tool args (example: {\"offset\":0}, never \"offset=0\").\n- Use workspace-relative paths only; never construct absolute filesystem paths.\n- Framework supports both tool calls and script commands; follow the SKILL whitelist per step.\n- If a skill allows both tool and script for one step, prefer the tool path unless user asks for script.\n- Do not inspect script source files unless the user explicitly asks for script code.\n- Avoid redundant exploratory calls; use the shortest valid workflow.\n- Complete the task in one uninterrupted run whenever possible; do not stop after intermediate reads or planning.\n- If required output artifacts are missing, continue executing tool steps until they are written and validated.",
3
+ "threadId": "t-1773110357185",
4
+ "status": "completed",
5
+ "startedAt": "2026-03-10T02:41:38.572Z",
6
+ "updatedAt": "2026-03-10T02:41:38.572Z",
7
+ "stepCount": 2,
8
+ "lastSummary": "Tool call: itermRunCommandInSession",
9
+ "artifacts": {
10
+ "todosPath": "/Users/boqiangliang/project/botbotgo/apps/itermbot/.agent/todos.json",
11
+ "todosPresent": false
12
+ }
13
+ }
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Setup Node.js
23
23
  uses: actions/setup-node@v4
24
24
  with:
25
- node-version: '20'
25
+ node-version: '22'
26
26
  cache: 'npm'
27
27
  registry-url: 'https://registry.npmjs.org'
28
28
 
@@ -31,7 +31,7 @@ jobs:
31
31
  - name: Setup Node.js
32
32
  uses: actions/setup-node@v4
33
33
  with:
34
- node-version: '20'
34
+ node-version: '22'
35
35
  cache: 'npm'
36
36
  registry-url: 'https://registry.npmjs.org'
37
37
 
package/README.md CHANGED
@@ -21,8 +21,16 @@ Main config files:
21
21
  - `config/model.yaml`
22
22
  - `config/toolkit.yaml`
23
23
  - `config/memory.yaml`
24
+ - `config/task-manager.yaml`
24
25
 
25
26
  `config/app.yaml` holds app-level behavior such as prompt templates and local startup settings. The model, memory, tool, and runtime files are delegated to the corresponding framework repos.
27
+ `config/task-manager.yaml` defines the application task manager behavior and persistence file.
28
+
29
+ Task manager commands in CLI:
30
+
31
+ - `task list`
32
+ - `task add <description>`
33
+ - `task run [task-id]`
26
34
 
27
35
  ## Usage
28
36
 
package/config/agent.yaml CHANGED
@@ -3,5 +3,17 @@ kind: AgentConfig
3
3
  metadata:
4
4
  name: itermbot-agent
5
5
  spec:
6
+ stateDirName: .agent
6
7
  maxSteps: 100
7
- invokeTimeoutMs: 240000
8
+
9
+ # Runtime timing and liveness controls.
10
+ executeTimeoutMs: 240000
11
+ llmIdleTimeoutMs: 300000
12
+ heartbeatIntervalMs: 10000
13
+ backend:
14
+ type: module_export
15
+ module: ./dist/iterm/target-panel-backend.js
16
+ exportName: ITermTargetPanelBackend
17
+ options:
18
+ waitMs: 1000
19
+ maxOutputLines: 8000
package/config/app.yaml CHANGED
@@ -1,14 +1,35 @@
1
+ # mandatory: apiVersion
2
+ # description: API version of this config resource.
3
+ # default: None (must be explicitly set)
1
4
  apiVersion: botbotgo.world/v1
5
+ # mandatory: kind
6
+ # description: Resource kind; app config must be AppConfig.
7
+ # default: None (must be explicitly set)
2
8
  kind: AppConfig
3
9
  metadata:
10
+ # mandatory: metadata.name
11
+ # description: App config name.
12
+ # default: None (must be explicitly set)
4
13
  name: itermbot
5
14
  spec:
15
+ # optional: spec.agent
16
+ # description: Default agent mode identifier (for example, deep/react).
17
+ # default: Determined by app entrypoint default policy
6
18
  agent: deep
7
19
 
20
+ # optional: spec.printSteps
21
+ # description: Whether to print intermediate step logs.
22
+ # default: false
8
23
  printSteps: true
24
+ # optional: spec.responseSafetyMode
25
+ # description: Response safety policy level.
26
+ # default: balanced
9
27
  responseSafetyMode: balanced
10
28
 
11
29
  promptTemplates:
30
+ # optional: spec.promptTemplates.systemPrompt
31
+ # description: Main system prompt template.
32
+ # default: None
12
33
  systemPrompt: |
13
34
  ## Role
14
35
  You are a senior systems engineer and terminal operations specialist.
@@ -58,6 +79,9 @@ spec:
58
79
  - If an inspection request omits path or scope, first run one non-destructive check against the current target-panel working directory and state that assumption explicitly.
59
80
  - Do not suggest destructive commands (for example rm -rf, sudo rm, mkfs, dd, or disk erase) unless the user explicitly asks to execute them.
60
81
  - Prefer non-destructive and reversible recommendations before irreversible actions.
82
+ # optional: spec.promptTemplates.directCommandTranslationPrompt
83
+ # description: Prompt template for translating user requests into one read-only command.
84
+ # default: None
61
85
  directCommandTranslationPrompt: |
62
86
  Role: you are a terminal command translator for direct execution.
63
87
  Translate one user request into one executable read-only terminal command.
@@ -6,7 +6,9 @@ spec:
6
6
  types:
7
7
  thread:
8
8
  store:
9
- type: in_memory
9
+ type: sqlite
10
+ config:
11
+ dbPath: ../data/thread.sqlite
10
12
  # Empty model means using model.yaml defaults.
11
13
  # You can override per type, e.g. llmModelId/embedModelId.
12
14
  model: {}
@@ -25,7 +27,9 @@ spec:
25
27
 
26
28
  cross_thread:
27
29
  store:
28
- type: in_memory
30
+ type: sqlite
31
+ config:
32
+ dbPath: ../data/cross-thread.sqlite
29
33
  # Empty model means using model.yaml defaults.
30
34
  # You can override per type, e.g. llmModelId/embedModelId.
31
35
  model: {}
@@ -43,7 +47,9 @@ spec:
43
47
 
44
48
  knowledge:
45
49
  store:
46
- type: in_memory
50
+ type: sqlite
51
+ config:
52
+ dbPath: ../data/knowledge.sqlite
47
53
  # Empty model means using model.yaml defaults.
48
54
  # You can override per type, e.g. llmModelId/embedModelId.
49
55
  model: {}
package/config/model.yaml CHANGED
@@ -1,32 +1,22 @@
1
1
  apiVersion: botbotgo.world/v1
2
2
  kind: ModelConfig
3
3
  metadata:
4
- name: itermbot-models
4
+ name: agent-example-model
5
5
  spec:
6
6
  llm:
7
- default: small
8
- small:
7
+ default: gpt_oss
8
+ gpt_oss:
9
9
  provider: openai
10
- base_url: http://localhost:11434/v1
11
- model: qwen3:0.6b
12
- lfm2:
13
- provider: openai
14
- base_url: https://ollama-rtx-4070.botbotgo.world/v1
15
- model: lfm2:latest
10
+ base_url: https://ollama-rtx-4070.easynet.world/v1
11
+ model: gpt-oss:latest
12
+ apiKey: ollama
13
+ options:
14
+ timeoutMs: 300000
16
15
 
17
16
  embed:
18
- default: local
19
- local:
20
- provider: openai
21
- base_url: http://localhost:11434/v1
22
- model: qwen3-embedding:0.6b
23
- apiKey: not-needed
24
-
25
- vlm:
26
- default: glm_ocr
27
- glm_ocr:
28
- type: image
17
+ default: nomic_embed_text
18
+ nomic_embed_text:
29
19
  provider: openai
30
- base_url: http://localhost:11434/v1
31
- model: glm-ocr:q8_0
20
+ base_url: https://ollama-rtx-4070.easynet.world/v1
21
+ model: nomic-embed-text
32
22
  apiKey: not-needed
@@ -3,55 +3,59 @@ kind: ToolkitConfig
3
3
  metadata:
4
4
  name: itermbot-local-tool-config
5
5
  spec:
6
+ sandboxedPath: .
7
+ paths:
8
+ file:../../../framework/toolkit-builtin: {}
6
9
  tools:
7
- file:../../../framework/toolkit-builtin:
8
- itermRunCommandInSession:
9
- allowedCommandPrefixes:
10
- - cat
11
- - cd
12
- - date
13
- - df
14
- - du
15
- - env
16
- - file
17
- - find
18
- - grep
19
- - head
20
- - hostname
21
- - id
22
- - ls
23
- - md5sum
24
- - pgrep
25
- - ps
26
- - pwd
27
- - readlink
28
- - rg
29
- - sha1sum
30
- - sha256sum
31
- - stat
32
- - sysctl
33
- - tail
34
- - top
35
- - uname -s
36
- - uname
37
- - uptime
38
- - vm_stat
39
- - wc
40
- - whoami
41
- - free
42
- - kubectl config current-context
43
- - kubectl config get-contexts
44
- - kubectl config view
45
- - kubectl cluster-info
46
- - kubectl get
47
- - kubectl logs
48
- - kubectl describe
49
- analyzeProjectRepo:
50
- timeoutMs: 90000
51
- askProjectRepo:
52
- timeoutMs: 90000
53
- gitPrView:
54
- comments: true
55
- gitPrReview:
56
- comments: true
57
- timeoutMs: 90000
10
+ customized:
11
+ file:../../../framework/toolkit-builtin:
12
+ itermRunCommandInSession:
13
+ allowedCommandPrefixes:
14
+ - cat
15
+ - cd
16
+ - date
17
+ - df
18
+ - du
19
+ - env
20
+ - file
21
+ - find
22
+ - grep
23
+ - head
24
+ - hostname
25
+ - id
26
+ - ls
27
+ - md5sum
28
+ - pgrep
29
+ - ps
30
+ - pwd
31
+ - readlink
32
+ - rg
33
+ - sha1sum
34
+ - sha256sum
35
+ - stat
36
+ - sysctl
37
+ - tail
38
+ - top
39
+ - uname -s
40
+ - uname
41
+ - uptime
42
+ - vm_stat
43
+ - wc
44
+ - whoami
45
+ - free
46
+ - kubectl config current-context
47
+ - kubectl config get-contexts
48
+ - kubectl config view
49
+ - kubectl cluster-info
50
+ - kubectl get
51
+ - kubectl logs
52
+ - kubectl describe
53
+ analyzeProjectRepo:
54
+ timeoutMs: 90000
55
+ askProjectRepo:
56
+ timeoutMs: 90000
57
+ gitPrView:
58
+ comments: true
59
+ gitPrReview:
60
+ comments: true
61
+ timeoutMs: 90000
@@ -31,7 +31,7 @@ function buildGenericSafeGuidance() {
31
31
  ].join("\n");
32
32
  }
33
33
  export function enforceResponseSafety(text) {
34
- const trimmed = text.trim();
34
+ const trimmed = typeof text === "string" ? text.trim() : "";
35
35
  if (!trimmed)
36
36
  return trimmed;
37
37
  return enforceResponseSafetyWithMode(trimmed, "balanced");
@@ -89,7 +89,7 @@ function replaceUngroundedPaths(text, options) {
89
89
  return { text: out, replaced };
90
90
  }
91
91
  export function enforceResponseSafetyWithMode(text, mode = "balanced", options) {
92
- const trimmed = text.trim();
92
+ const trimmed = typeof text === "string" ? text.trim() : "";
93
93
  if (!trimmed)
94
94
  return trimmed;
95
95
  if (mode === "off")
@@ -1 +1 @@
1
- {"version":3,"file":"response-safety.js","sourceRoot":"","sources":["../../src/chat/response-safety.ts"],"names":[],"mappings":"AAMA,SAAS,wBAAwB,CAAC,IAAY;IAC5C,MAAM,QAAQ,GAAG;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,qBAAqB;KACtB,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI;SACR,OAAO,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;SAC3D,OAAO,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC5D,OAAO,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SAC9D,OAAO,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC5D,OAAO,CAAC,yBAAyB,EAAE,gCAAgC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,6BAA6B,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;QACL,6BAA6B;QAC7B,0DAA0D;QAC1D,yDAAyD;QACzD,iEAAiE;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,OAAO,6BAA6B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,+FAA+F;IAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,aAA0B;IACtE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,OAA+B;IAC3E,MAAM,QAAQ,GAAG,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAE3D,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,sBAAsB,CAAC,IAAI,EAAE,aAAa,CAAC;YAAE,SAAS;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,8BAA8B,CAAC,CAAC;YACtD,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC3H,MAAM,MAAM,GAAG,0BAA0B,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;YAC1D,QAAQ,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAY,EACZ,OAA2B,UAAU,EACrC,OAA+B;IAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;QAClD,OAAO,GAAG,QAAQ,CAAC,IAAI,yFAAyF,CAAC;IACnH,CAAC;IAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG;YACV,QAAQ;YACR,EAAE;YACF,sGAAsG;SACvG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACxC,OAAO,GAAG,GAAG,uFAAuF,CAAC;IACvG,CAAC;IAED,MAAM,OAAO,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG;QACjB,6DAA6D;QAC7D,0CAA0C;QAC1C,uEAAuE;KACxE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC;IAChG,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,wBAAwB,EAAE,OAAO,UAAU,EAAE,CAAC;IAC9E,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,GAAG,SAAS,uFAAuF,CAAC;AAC7G,CAAC"}
1
+ {"version":3,"file":"response-safety.js","sourceRoot":"","sources":["../../src/chat/response-safety.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type TaskStatus = "pending" | "running" | "completed" | "failed";
2
+ export interface TaskRecord {
3
+ id: string;
4
+ description: string;
5
+ status: TaskStatus;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ startedAt?: string;
9
+ finishedAt?: string;
10
+ outputPreview?: string;
11
+ error?: string;
12
+ }
13
+ export interface CreateTaskManagerOptions {
14
+ rootDir: string;
15
+ stateFile?: string;
16
+ maxTasks?: number;
17
+ }
18
+ export interface TaskManagerRunOptions {
19
+ id?: string;
20
+ runTask: (description: string) => Promise<string>;
21
+ }
22
+ export declare class ApplicationTaskManager {
23
+ private readonly statePath;
24
+ private readonly maxTasks;
25
+ constructor(options: CreateTaskManagerOptions);
26
+ add(description: string): Promise<TaskRecord>;
27
+ list(): Promise<TaskRecord[]>;
28
+ runNext(options: TaskManagerRunOptions): Promise<TaskRecord>;
29
+ handleCommand(input: string, runTask: (description: string) => Promise<string>): Promise<string | null>;
30
+ private readStore;
31
+ private writeStore;
32
+ }
33
+ //# sourceMappingURL=task-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/chat/task-manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD;AAQD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEf,OAAO,EAAE,wBAAwB;IAKvC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB7C,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAK7B,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuC5D,aAAa,CACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAChD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YA8BX,SAAS;YAaT,UAAU;CAIzB"}
@@ -0,0 +1,124 @@
1
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
2
+ import { dirname, resolve } from "node:path";
3
+ function normalizePreview(text) {
4
+ const oneLine = text.replace(/\s+/g, " ").trim();
5
+ if (oneLine.length <= 240)
6
+ return oneLine;
7
+ return `${oneLine.slice(0, 237)}...`;
8
+ }
9
+ export class ApplicationTaskManager {
10
+ statePath;
11
+ maxTasks;
12
+ constructor(options) {
13
+ this.statePath = resolve(options.rootDir, options.stateFile ?? ".agent/tasks.json");
14
+ this.maxTasks = Math.max(1, Math.floor(options.maxTasks ?? 200));
15
+ }
16
+ async add(description) {
17
+ const trimmed = description.trim();
18
+ if (!trimmed) {
19
+ throw new Error("Task description cannot be empty.");
20
+ }
21
+ const store = await this.readStore();
22
+ if (store.tasks.length >= this.maxTasks) {
23
+ throw new Error(`Task limit reached (${this.maxTasks}).`);
24
+ }
25
+ const now = new Date().toISOString();
26
+ const task = {
27
+ id: `t-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`,
28
+ description: trimmed,
29
+ status: "pending",
30
+ createdAt: now,
31
+ updatedAt: now,
32
+ };
33
+ store.tasks.push(task);
34
+ await this.writeStore(store);
35
+ return task;
36
+ }
37
+ async list() {
38
+ const store = await this.readStore();
39
+ return [...store.tasks];
40
+ }
41
+ async runNext(options) {
42
+ const store = await this.readStore();
43
+ const task = options.id
44
+ ? store.tasks.find((item) => item.id === options.id)
45
+ : store.tasks.find((item) => item.status === "pending");
46
+ if (!task) {
47
+ throw new Error(options.id ? `Task not found: ${options.id}` : "No pending task to run.");
48
+ }
49
+ if (task.status === "running") {
50
+ throw new Error(`Task is already running: ${task.id}`);
51
+ }
52
+ const startedAt = new Date().toISOString();
53
+ task.status = "running";
54
+ task.startedAt = startedAt;
55
+ task.updatedAt = startedAt;
56
+ task.error = undefined;
57
+ await this.writeStore(store);
58
+ try {
59
+ const output = await options.runTask(task.description);
60
+ const finishedAt = new Date().toISOString();
61
+ task.status = "completed";
62
+ task.finishedAt = finishedAt;
63
+ task.updatedAt = finishedAt;
64
+ task.outputPreview = normalizePreview(output);
65
+ await this.writeStore(store);
66
+ return { ...task };
67
+ }
68
+ catch (error) {
69
+ const finishedAt = new Date().toISOString();
70
+ task.status = "failed";
71
+ task.finishedAt = finishedAt;
72
+ task.updatedAt = finishedAt;
73
+ task.error = error instanceof Error ? error.message : String(error);
74
+ await this.writeStore(store);
75
+ return { ...task };
76
+ }
77
+ }
78
+ async handleCommand(input, runTask) {
79
+ const trimmed = input.trim();
80
+ if (!/^task(\s|$)/i.test(trimmed))
81
+ return null;
82
+ const listMatch = /^task\s+list$/i.exec(trimmed);
83
+ if (listMatch) {
84
+ const tasks = await this.list();
85
+ if (tasks.length === 0)
86
+ return "No tasks.";
87
+ return tasks
88
+ .map((task) => `- ${task.id} [${task.status}] ${task.description}`)
89
+ .join("\n");
90
+ }
91
+ const addMatch = /^task\s+add\s+(.+)$/i.exec(trimmed);
92
+ if (addMatch) {
93
+ const task = await this.add(addMatch[1] ?? "");
94
+ return `Task added: ${task.id} [pending] ${task.description}`;
95
+ }
96
+ const runMatch = /^task\s+run(?:\s+([a-zA-Z0-9_-]+))?$/i.exec(trimmed);
97
+ if (runMatch) {
98
+ const task = await this.runNext({ id: runMatch[1], runTask });
99
+ if (task.status === "completed") {
100
+ return `Task completed: ${task.id}\n${task.outputPreview ?? ""}`.trim();
101
+ }
102
+ return `Task failed: ${task.id}\n${task.error ?? "Unknown error"}`;
103
+ }
104
+ return "Task manager commands: task list | task add <description> | task run [task-id]";
105
+ }
106
+ async readStore() {
107
+ try {
108
+ const raw = await readFile(this.statePath, "utf8");
109
+ const parsed = JSON.parse(raw);
110
+ if (parsed && parsed.version === 1 && Array.isArray(parsed.tasks)) {
111
+ return { version: 1, tasks: parsed.tasks };
112
+ }
113
+ return { version: 1, tasks: [] };
114
+ }
115
+ catch {
116
+ return { version: 1, tasks: [] };
117
+ }
118
+ }
119
+ async writeStore(store) {
120
+ await mkdir(dirname(this.statePath), { recursive: true });
121
+ await writeFile(this.statePath, JSON.stringify(store, null, 2), "utf8");
122
+ }
123
+ }
124
+ //# sourceMappingURL=task-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-manager.js","sourceRoot":"","sources":["../../src/chat/task-manager.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -4,6 +4,7 @@ export type PromptTemplates = {
4
4
  };
5
5
  export type ResponseSafetyMode = "off" | "balanced" | "strict";
6
6
  export type AgentMode = "react" | "deep";
7
+ export type RuntimeBackendType = "local_shell" | "deepagents_export" | "module_export";
7
8
  export type AppConfig = {
8
9
  agent?: AgentMode;
9
10
  printSteps?: boolean;
@@ -13,6 +14,16 @@ export type AppConfig = {
13
14
  export type RuntimeConfig = {
14
15
  maxSteps?: number;
15
16
  invokeTimeoutMs?: number;
17
+ backend?: {
18
+ type?: RuntimeBackendType;
19
+ exportName?: string;
20
+ module?: string;
21
+ createMethod?: string;
22
+ options?: Record<string, unknown>;
23
+ inheritEnv?: boolean;
24
+ timeoutMs?: number;
25
+ maxOutputBytes?: number;
26
+ };
16
27
  };
17
28
  export type SkillRuntimeConfig = {
18
29
  mode?: "prompt" | "subagent";
@@ -27,7 +38,13 @@ export type SkillWorkflowConfig = {
27
38
  summaryPrompt?: string;
28
39
  }>;
29
40
  };
41
+ export type TaskManagerConfig = {
42
+ enabled?: boolean;
43
+ stateFile?: string;
44
+ maxTasks?: number;
45
+ };
30
46
  export declare function loadAppConfig(configPath: string): Promise<AppConfig>;
31
47
  export declare function loadRuntimeConfig(configPath: string): Promise<RuntimeConfig>;
32
48
  export declare function loadSkillRuntimeConfig(configPath: string): Promise<SkillRuntimeConfig>;
49
+ export declare function loadTaskManagerConfig(configPath: string): Promise<TaskManagerConfig>;
33
50
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ,CAAC;AAEF,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqC1E;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6BlF;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2D5F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC/D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAEvF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqC1E;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyElF;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwE5F;AAED,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+B1F"}