@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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @poncho-ai/harness@0.24.0 build /home/runner/work/poncho-ai/poncho-ai/packages/harness
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
  CLI tsup v8.5.1
9
9
  CLI Target: es2022
10
10
  ESM Build start
11
- ESM dist/index.js 263.89 KB
12
- ESM ⚡️ Build success in 136ms
11
+ ESM dist/index.js 276.38 KB
12
+ ESM ⚡️ Build success in 147ms
13
13
  DTS Build start
14
- DTS ⚡️ Build success in 6918ms
15
- DTS dist/index.d.ts 27.50 KB
14
+ DTS ⚡️ Build success in 7090ms
15
+ DTS dist/index.d.ts 28.59 KB
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;