@poncho-ai/harness 0.31.2 → 0.32.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.31.2 build /home/runner/work/poncho-ai/poncho-ai/packages/harness
2
+ > @poncho-ai/harness@0.32.0 build /Users/cesar/Dev/latitude/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 327.57 KB
12
- ESM ⚡️ Build success in 170ms
11
+ ESM dist/index.js 340.95 KB
12
+ ESM ⚡️ Build success in 194ms
13
13
  DTS Build start
14
- DTS ⚡️ Build success in 7684ms
15
- DTS dist/index.d.ts 33.43 KB
14
+ DTS ⚡️ Build success in 3547ms
15
+ DTS dist/index.d.ts 34.66 KB
@@ -0,0 +1,6 @@
1
+
2
+ > @poncho-ai/harness@0.11.2 lint /Users/cesar/Dev/latitude/poncho-ai/packages/harness
3
+ > eslint src/
4
+
5
+ sh: eslint: command not found
6
+  ELIFECYCLE  Command failed.
@@ -0,0 +1,34 @@
1
+
2
+ > @poncho-ai/harness@0.26.0 test /Users/cesar/Dev/latitude/poncho-ai/packages/harness
3
+ > vitest
4
+
5
+
6
+  RUN  v1.6.1 /Users/cesar/Dev/latitude/poncho-ai/packages/harness
7
+
8
+ stdout | test/mcp.test.ts > mcp bridge protocol transports > discovers and calls tools over streamable HTTP
9
+ [poncho][mcp] {"event":"catalog.loaded","server":"remote","discoveredCount":1}
10
+ [poncho][mcp] {"event":"tools.selected","requestedPatternCount":1,"registeredCount":1,"filteredByPolicyCount":0,"filteredByIntentCount":0}
11
+
12
+ stdout | test/mcp.test.ts > mcp bridge protocol transports > sends custom headers alongside bearer token
13
+ [poncho][mcp] {"event":"catalog.loaded","server":"custom-headers","discoveredCount":1}
14
+
15
+ stderr | test/mcp.test.ts > mcp bridge protocol transports > skips discovery when bearer token env value is missing
16
+ stdout | test/mcp.test.ts > mcp bridge protocol transports > selects discovered tools by requested patterns
17
+ [poncho][mcp] {"event":"auth.token_missing","server":"remote","tokenEnv":"MISSING_TOKEN_ENV"}
18
+ [poncho][mcp] {"event":"catalog.loaded","server":"remote","discoveredCount":2}
19
+ [poncho][mcp] {"event":"tools.selected","requestedPatternCount":1,"registeredCount":1,"filteredByPolicyCount":0,"filteredByIntentCount":1}
20
+
21
+ [poncho][mcp] {"event":"tools.selected","requestedPatternCount":1,"registeredCount":2,"filteredByPolicyCount":0,"filteredByIntentCount":0}
22
+
23
+ stdout | test/mcp.test.ts > mcp bridge protocol transports > skips discovery when bearer token env value is missing
24
+ [poncho][mcp] {"event":"tools.selected","requestedPatternCount":1,"registeredCount":0,"filteredByPolicyCount":0,"filteredByIntentCount":0}
25
+
26
+ [event] step:completed {"type":"step:completed","step":1,"duration":1}
27
+ ✓ test/telemetry.test.ts  (3 tests) 5ms
28
+ [event] step:started {"type":"step:started","step":2}
29
+ ✓ test/schema-converter.test.ts  (27 tests) 13ms
30
+ stdout | test/mcp.test.ts > mcp bridge protocol transports > returns actionable errors for 403 permission failures
31
+ [poncho][mcp] {"event":"catalog.loaded","server":"remote","discoveredCount":1}
32
+ [poncho][mcp] {"event":"tools.selected","requestedPatternCount":1,"registeredCount":1,"filteredByPolicyCount":0,"filteredByIntentCount":0}
33
+
34
+ ✓ test/mcp.test.ts  (7 tests) 84ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @poncho-ai/harness
2
2
 
3
+ ## 0.32.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#68](https://github.com/cesr/poncho-ai/pull/68) [`5a7e370`](https://github.com/cesr/poncho-ai/commit/5a7e3700a5ee441ef41cf4dc0ca70ff90e57d282) Thanks [@cesr](https://github.com/cesr)! - Add one-off reminders: agents can dynamically set, list, and cancel reminders that fire at a specific time. Fired reminders are immediately deleted from storage. Includes polling for local dev and Vercel cron integration.
8
+
9
+ ## 0.31.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [#56](https://github.com/cesr/poncho-ai/pull/56) [`28b2913`](https://github.com/cesr/poncho-ai/commit/28b291379e640dec53a66c41a2795d0a9fbb9ee7) Thanks [@cesr](https://github.com/cesr)! - Fix historical tool result truncation reliability for deployed conversations.
14
+
15
+ This stamps `runId` on all harness-authored assistant messages and adds a fallback truncation boundary for legacy histories that lack `runId` metadata.
16
+
3
17
  ## 0.31.2
4
18
 
5
19
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -461,6 +461,12 @@ interface PonchoConfig extends McpConfig {
461
461
  lambda?: Record<string, unknown>;
462
462
  fly?: Record<string, unknown>;
463
463
  };
464
+ /** One-off reminders. When enabled, the agent gets set_reminder / list_reminders / cancel_reminder tools. */
465
+ reminders?: {
466
+ enabled?: boolean;
467
+ /** Cron expression controlling how often the reminder poll runs (local and serverless). Default: every 10 minutes. */
468
+ pollSchedule?: string;
469
+ };
464
470
  /** Set to `false` to disable the built-in web UI (headless / API-only mode). */
465
471
  webUi?: false;
466
472
  /** Enable browser automation tools. Set `true` for defaults, or provide config. */
@@ -551,6 +557,33 @@ interface TodoItem {
551
557
  updatedAt: number;
552
558
  }
553
559
 
560
+ type ReminderStatus = "pending" | "fired" | "cancelled";
561
+ interface Reminder {
562
+ id: string;
563
+ task: string;
564
+ scheduledAt: number;
565
+ timezone?: string;
566
+ status: ReminderStatus;
567
+ createdAt: number;
568
+ conversationId: string;
569
+ ownerId?: string;
570
+ }
571
+ interface ReminderStore {
572
+ list(): Promise<Reminder[]>;
573
+ create(input: {
574
+ task: string;
575
+ scheduledAt: number;
576
+ timezone?: string;
577
+ conversationId: string;
578
+ ownerId?: string;
579
+ }): Promise<Reminder>;
580
+ cancel(id: string): Promise<Reminder>;
581
+ delete(id: string): Promise<void>;
582
+ }
583
+ declare const createReminderStore: (agentId: string, config?: StateConfig, options?: {
584
+ workingDir?: string;
585
+ }) => ReminderStore;
586
+
554
587
  declare const OPENAI_CODEX_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
555
588
  interface OpenAICodexAuthConfig {
556
589
  refreshTokenEnv?: string;
@@ -688,6 +721,7 @@ declare class AgentHarness {
688
721
  private skillContextWindow;
689
722
  private memoryStore?;
690
723
  private todoStore?;
724
+ reminderStore?: ReminderStore;
691
725
  private loadedConfig?;
692
726
  private loadedSkills;
693
727
  private skillFingerprint;
@@ -886,6 +920,8 @@ declare const createSkillTools: (skills: SkillMetadata[], options?: {
886
920
  }) => ToolDefinition[];
887
921
  declare const normalizeScriptPolicyPath: (relativePath: string) => string;
888
922
 
923
+ declare const createReminderTools: (store: ReminderStore) => ToolDefinition[];
924
+
889
925
  interface OtlpConfig {
890
926
  url: string;
891
927
  headers?: Record<string, string>;
@@ -912,4 +948,4 @@ declare class TelemetryEmitter {
912
948
 
913
949
  declare const createSubagentTools: (manager: SubagentManager) => ToolDefinition[];
914
950
 
915
- export { type AgentFrontmatter, AgentHarness, type AgentIdentity, type AgentLimitsConfig, type AgentModelConfig, type ArchivedToolResult$1 as ArchivedToolResult, type BuiltInToolToggles, type CompactMessagesOptions, type CompactResult, type CompactionConfig, type Conversation, type ConversationState, type ConversationStore, type ConversationSummary, type CronJobConfig, type HarnessOptions, type HarnessRunOutput, InMemoryConversationStore, InMemoryStateStore, LatitudeCapture, type LatitudeCaptureConfig, LocalMcpBridge, LocalUploadStore, type MainMemory, type McpConfig, type MemoryConfig, type MemoryStore, type MessagingChannelConfig, type ModelProviderFactory, OPENAI_CODEX_CLIENT_ID, type OpenAICodexAuthConfig, type OpenAICodexDeviceAuthRequest, type OpenAICodexSession, type OtlpConfig, type OtlpOption, PONCHO_UPLOAD_SCHEME, type ParsedAgent, type PendingSubagentResult, type PonchoConfig, type ProviderConfig, type RemoteMcpServerConfig, type RuntimeRenderContext, S3UploadStore, STORAGE_SCHEMA_VERSION, type SkillContextEntry, type SkillMetadata, type StateConfig, type StateProviderName, type StateStore, type StorageConfig, type SubagentManager, type SubagentResult, type SubagentSpawnResult, type SubagentSummary, type TelemetryConfig, TelemetryEmitter, type ToolAccess, type ToolCall, ToolDispatcher, type ToolExecutionResult, type UploadStore, type UploadsConfig, VercelBlobUploadStore, buildAgentDirectoryName, buildSkillContextWindow, compactMessages, completeOpenAICodexDeviceAuth, createConversationStore, createDefaultTools, createDeleteDirectoryTool, createDeleteTool, createEditTool, createMemoryStore, createMemoryTools, createModelProvider, createSearchTools, createSkillTools, createStateStore, createSubagentTools, createUploadStore, createWriteTool, deleteOpenAICodexSession, deriveUploadKey, ensureAgentIdentity, estimateTokens, estimateTotalTokens, findSafeSplitPoint, generateAgentId, getAgentStoreDirectory, getModelContextWindow, getOpenAICodexAccessToken, getOpenAICodexAuthFilePath, getOpenAICodexRequiredScopes, getPonchoStoreRoot, jsonSchemaToZod, loadPonchoConfig, loadSkillContext, loadSkillInstructions, loadSkillMetadata, normalizeOtlp, normalizeScriptPolicyPath, parseAgentFile, parseAgentMarkdown, ponchoDocsTool, readOpenAICodexSession, readSkillResource, renderAgentPrompt, resolveAgentIdentity, resolveCompactionConfig, resolveMemoryConfig, resolveSkillDirs, resolveStateConfig, slugifyStorageComponent, startOpenAICodexDeviceAuth, writeOpenAICodexSession };
951
+ export { type AgentFrontmatter, AgentHarness, type AgentIdentity, type AgentLimitsConfig, type AgentModelConfig, type ArchivedToolResult$1 as ArchivedToolResult, type BuiltInToolToggles, type CompactMessagesOptions, type CompactResult, type CompactionConfig, type Conversation, type ConversationState, type ConversationStore, type ConversationSummary, type CronJobConfig, type HarnessOptions, type HarnessRunOutput, InMemoryConversationStore, InMemoryStateStore, LatitudeCapture, type LatitudeCaptureConfig, LocalMcpBridge, LocalUploadStore, type MainMemory, type McpConfig, type MemoryConfig, type MemoryStore, type MessagingChannelConfig, type ModelProviderFactory, OPENAI_CODEX_CLIENT_ID, type OpenAICodexAuthConfig, type OpenAICodexDeviceAuthRequest, type OpenAICodexSession, type OtlpConfig, type OtlpOption, PONCHO_UPLOAD_SCHEME, type ParsedAgent, type PendingSubagentResult, type PonchoConfig, type ProviderConfig, type Reminder, type ReminderStatus, type ReminderStore, type RemoteMcpServerConfig, type RuntimeRenderContext, S3UploadStore, STORAGE_SCHEMA_VERSION, type SkillContextEntry, type SkillMetadata, type StateConfig, type StateProviderName, type StateStore, type StorageConfig, type SubagentManager, type SubagentResult, type SubagentSpawnResult, type SubagentSummary, type TelemetryConfig, TelemetryEmitter, type ToolAccess, type ToolCall, ToolDispatcher, type ToolExecutionResult, type UploadStore, type UploadsConfig, VercelBlobUploadStore, buildAgentDirectoryName, buildSkillContextWindow, compactMessages, completeOpenAICodexDeviceAuth, createConversationStore, createDefaultTools, createDeleteDirectoryTool, createDeleteTool, createEditTool, createMemoryStore, createMemoryTools, createModelProvider, createReminderStore, createReminderTools, createSearchTools, createSkillTools, createStateStore, createSubagentTools, createUploadStore, createWriteTool, deleteOpenAICodexSession, deriveUploadKey, ensureAgentIdentity, estimateTokens, estimateTotalTokens, findSafeSplitPoint, generateAgentId, getAgentStoreDirectory, getModelContextWindow, getOpenAICodexAccessToken, getOpenAICodexAuthFilePath, getOpenAICodexRequiredScopes, getPonchoStoreRoot, jsonSchemaToZod, loadPonchoConfig, loadSkillContext, loadSkillInstructions, loadSkillMetadata, normalizeOtlp, normalizeScriptPolicyPath, parseAgentFile, parseAgentMarkdown, ponchoDocsTool, readOpenAICodexSession, readSkillResource, renderAgentPrompt, resolveAgentIdentity, resolveCompactionConfig, resolveMemoryConfig, resolveSkillDirs, resolveStateConfig, slugifyStorageComponent, startOpenAICodexDeviceAuth, writeOpenAICodexSession };