pullfrog 0.1.56 → 0.1.59

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.
@@ -6,10 +6,11 @@
6
6
  import type { EffortPosition } from "./effort.ts";
7
7
  export declare const pullfrogMcpName = "pullfrog";
8
8
  /** @see {@link file://./agents/shared.ts} Agent interface that uses this type */
9
- export type AgentId = "claude" | "opencode";
9
+ export type AgentId = "claude" | "codex" | "opencode";
10
10
  /**
11
11
  * format a tool name the way each agent's MCP client presents it to the model.
12
12
  * claude code: mcp__pullfrog__select_mode
13
+ * codex: pullfrog__select_mode
13
14
  * opencode: pullfrog_select_mode
14
15
  */
15
16
  export declare function formatMcpToolRef(agentId: AgentId, toolName: string): string;
@@ -25,7 +26,7 @@ export declare function formatMcpToolRef(agentId: AgentId, toolName: string): st
25
26
  */
26
27
  export declare function extractMcpToolRefs(agentId: AgentId, text: string): string[];
27
28
  /**
28
- * Fail the run if the assembled prompt advertises a tool the MCP server did not
29
+ * Report when the assembled prompt advertises a tool the MCP server did not
29
30
  * actually register.
30
31
  *
31
32
  * Prompt text and tool registration are decided in different files off
@@ -35,12 +36,19 @@ export declare function extractMcpToolRefs(agentId: AgentId, text: string): stri
35
36
  * never learns about one that is. `toolNames` comes straight back from
36
37
  * `startMcpHttpServer`, i.e. the list the server registered rather than a
37
38
  * second derivation of it, so there is nothing to keep in sync.
39
+ *
40
+ * WARNS rather than throws, and that is deliberate. The prompt embeds
41
+ * customer-authored text — repo instructions, an issue or PR body — so a
42
+ * customer who merely WRITES a prefixed token controls this predicate. Throwing
43
+ * handed them a way to fail every run on their repo, which is what happened to
44
+ * `arcainc/arca` on 0.1.56. A drift check that aborts a customer run is the
45
+ * same mistake 0.1.54 made; the drift still has to be visible, so it is logged.
38
46
  */
39
- export declare function assertPromptToolRefs(params: {
47
+ export declare function findDanglingPromptToolRefs(params: {
40
48
  agentId: AgentId;
41
49
  prompt: string;
42
50
  toolNames: string[];
43
- }): void;
51
+ }): string[];
44
52
  export type { EffortPosition } from "./effort.ts";
45
53
  export { DEFAULT_EFFORT_POSITION, EFFORT_ALIASES, isEffortPosition, offeredRungs, parseEffortPosition, resolveRung, rungLabel, rungPosition, } from "./effort.ts";
46
54
  export type { AutoTier, ModelAlias, ModelProvider, ProviderConfig } from "./models.ts";