@poncho-ai/harness 0.24.0 → 0.26.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/.turbo/turbo-build.log +5 -5
- package/CHANGELOG.md +12 -0
- package/dist/index.d.ts +34 -1
- package/dist/index.js +645 -337
- package/package.json +1 -1
- package/src/config.ts +4 -0
- package/src/harness.ts +140 -40
- package/src/kv-store.ts +206 -0
- package/src/memory.ts +88 -336
- package/src/todo-tools.ts +363 -0
- package/test/harness.test.ts +129 -2
- package/test/memory.test.ts +100 -15
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @poncho-ai/harness@0.
|
|
2
|
+
> @poncho-ai/harness@0.26.0 build /home/runner/work/poncho-ai/poncho-ai/packages/harness
|
|
3
3
|
> node scripts/embed-docs.js && tsup src/index.ts --format esm --dts
|
|
4
4
|
|
|
5
5
|
[embed-docs] Generated poncho-docs.ts with 4 topics
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
[34mCLI[39m tsup v8.5.1
|
|
9
9
|
[34mCLI[39m Target: es2022
|
|
10
10
|
[34mESM[39m Build start
|
|
11
|
-
[32mESM[39m [1mdist/index.js [22m[
|
|
12
|
-
[32mESM[39m ⚡️ Build success in
|
|
11
|
+
[32mESM[39m [1mdist/index.js [22m[32m276.38 KB[39m
|
|
12
|
+
[32mESM[39m ⚡️ Build success in 147ms
|
|
13
13
|
[34mDTS[39m Build start
|
|
14
|
-
[32mDTS[39m ⚡️ Build success in
|
|
15
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[
|
|
14
|
+
[32mDTS[39m ⚡️ Build success in 7090ms
|
|
15
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m28.59 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @poncho-ai/harness
|
|
2
2
|
|
|
3
|
+
## 0.26.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#40](https://github.com/cesr/poncho-ai/pull/40) [`95ae86b`](https://github.com/cesr/poncho-ai/commit/95ae86b4ea0d913357ccca9a43a227c83e46b9c4) Thanks [@cesr](https://github.com/cesr)! - Add built-in todo tools (todo_list, todo_add, todo_update, todo_remove) with per-conversation storage and a live todo panel in the web UI
|
|
8
|
+
|
|
9
|
+
## 0.25.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [`5a103ca`](https://github.com/cesr/poncho-ai/commit/5a103ca62238cceaa4f4b31769a96637330d6b84) Thanks [@cesr](https://github.com/cesr)! - Split `memory_main_update` into `memory_main_write` (full overwrite) and `memory_main_edit` (targeted string replacement). Hot-reload AGENT.md and skills in dev mode without restarting the server. Merge agent + skill MCP tool patterns additively. Fix MissingToolResultsError when resuming from nested approval checkpoints.
|
|
14
|
+
|
|
3
15
|
## 0.24.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -247,7 +247,6 @@ interface MemoryStore {
|
|
|
247
247
|
getMainMemory(): Promise<MainMemory>;
|
|
248
248
|
updateMainMemory(input: {
|
|
249
249
|
content: string;
|
|
250
|
-
mode?: "replace" | "append";
|
|
251
250
|
}): Promise<MainMemory>;
|
|
252
251
|
}
|
|
253
252
|
declare const createMemoryStore: (agentId: string, config?: MemoryConfig, options?: {
|
|
@@ -331,6 +330,10 @@ type BuiltInToolToggles = {
|
|
|
331
330
|
edit_file?: boolean;
|
|
332
331
|
delete_file?: boolean;
|
|
333
332
|
delete_directory?: boolean;
|
|
333
|
+
todo_list?: boolean;
|
|
334
|
+
todo_add?: boolean;
|
|
335
|
+
todo_update?: boolean;
|
|
336
|
+
todo_remove?: boolean;
|
|
334
337
|
};
|
|
335
338
|
interface MessagingChannelConfig {
|
|
336
339
|
platform: "slack" | "resend" | "telegram";
|
|
@@ -481,6 +484,17 @@ declare class S3UploadStore implements UploadStore {
|
|
|
481
484
|
}
|
|
482
485
|
declare const createUploadStore: (config: UploadsConfig | undefined, workingDir: string) => Promise<UploadStore>;
|
|
483
486
|
|
|
487
|
+
type TodoStatus = "pending" | "in_progress" | "completed";
|
|
488
|
+
type TodoPriority = "high" | "medium" | "low";
|
|
489
|
+
interface TodoItem {
|
|
490
|
+
id: string;
|
|
491
|
+
content: string;
|
|
492
|
+
status: TodoStatus;
|
|
493
|
+
priority: TodoPriority;
|
|
494
|
+
createdAt: number;
|
|
495
|
+
updatedAt: number;
|
|
496
|
+
}
|
|
497
|
+
|
|
484
498
|
type ModelProviderFactory = (modelName: string) => LanguageModel;
|
|
485
499
|
/**
|
|
486
500
|
* Returns the context window size (in tokens) for a given model name.
|
|
@@ -572,6 +586,7 @@ declare class AgentHarness {
|
|
|
572
586
|
readonly uploadStore?: UploadStore;
|
|
573
587
|
private skillContextWindow;
|
|
574
588
|
private memoryStore?;
|
|
589
|
+
private todoStore?;
|
|
575
590
|
private loadedConfig?;
|
|
576
591
|
private loadedSkills;
|
|
577
592
|
private skillFingerprint;
|
|
@@ -583,6 +598,7 @@ declare class AgentHarness {
|
|
|
583
598
|
private _browserSession?;
|
|
584
599
|
private _browserMod?;
|
|
585
600
|
private parsedAgent?;
|
|
601
|
+
private agentFileFingerprint;
|
|
586
602
|
private mcpBridge?;
|
|
587
603
|
private subagentManager?;
|
|
588
604
|
private resolveToolAccess;
|
|
@@ -600,6 +616,7 @@ declare class AgentHarness {
|
|
|
600
616
|
private shouldEnableWriteTool;
|
|
601
617
|
constructor(options?: HarnessOptions);
|
|
602
618
|
get frontmatter(): AgentFrontmatter | undefined;
|
|
619
|
+
getTodos(conversationId: string): Promise<TodoItem[]>;
|
|
603
620
|
private listActiveSkills;
|
|
604
621
|
private getAgentMcpIntent;
|
|
605
622
|
private getAgentScriptIntent;
|
|
@@ -616,6 +633,22 @@ declare class AgentHarness {
|
|
|
616
633
|
private buildSkillFingerprint;
|
|
617
634
|
private registerSkillTools;
|
|
618
635
|
private static readonly SKILL_REFRESH_DEBOUNCE_MS;
|
|
636
|
+
/**
|
|
637
|
+
* Re-read AGENT.md and update the parsed agent when the file has changed
|
|
638
|
+
* on disk. Returns `true` when the agent was actually re-parsed.
|
|
639
|
+
*
|
|
640
|
+
* Preserves the agent identity (id) across reloads so conversation
|
|
641
|
+
* continuity isn't broken.
|
|
642
|
+
*/
|
|
643
|
+
private refreshAgentIfChanged;
|
|
644
|
+
/**
|
|
645
|
+
* Re-scan skill directories and update metadata, tools, and context window
|
|
646
|
+
* when skills have changed on disk. Returns `true` when the skill set was
|
|
647
|
+
* actually updated.
|
|
648
|
+
*
|
|
649
|
+
* @param force - bypass the time-based debounce (used for mid-run refreshes
|
|
650
|
+
* after the agent may have written new skill files).
|
|
651
|
+
*/
|
|
619
652
|
private refreshSkillsIfChanged;
|
|
620
653
|
initialize(): Promise<void>;
|
|
621
654
|
private buildBrowserStoragePersistence;
|