daycare-cli 0.0.28 → 0.0.30

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 (73) hide show
  1. package/dist/config/configResolve.d.ts.map +1 -1
  2. package/dist/config/configResolve.js +5 -2
  3. package/dist/config/configResolve.js.map +1 -1
  4. package/dist/config/configResolve.spec.js +12 -5
  5. package/dist/config/configResolve.spec.js.map +1 -1
  6. package/dist/config/configSettingsParse.d.ts.map +1 -1
  7. package/dist/config/configSettingsParse.js +4 -1
  8. package/dist/config/configSettingsParse.js.map +1 -1
  9. package/dist/config/configTypes.d.ts +2 -2
  10. package/dist/config/configTypes.d.ts.map +1 -1
  11. package/dist/engine/agents/agent.d.ts.map +1 -1
  12. package/dist/engine/agents/agent.js +7 -3
  13. package/dist/engine/agents/agent.js.map +1 -1
  14. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  15. package/dist/engine/agents/ops/agentLoopRun.js +62 -23
  16. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  17. package/dist/engine/agents/ops/agentLoopRun.spec.js +99 -2
  18. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  19. package/dist/engine/apps/appExecute.js +1 -1
  20. package/dist/engine/apps/appExecute.js.map +1 -1
  21. package/dist/engine/engine.d.ts.map +1 -1
  22. package/dist/engine/engine.js +5 -3
  23. package/dist/engine/engine.js.map +1 -1
  24. package/dist/engine/engine.spec.js +1 -1
  25. package/dist/engine/engine.spec.js.map +1 -1
  26. package/dist/engine/messages/messageBuildSystemSilentText.d.ts +8 -0
  27. package/dist/engine/messages/messageBuildSystemSilentText.d.ts.map +1 -0
  28. package/dist/engine/messages/messageBuildSystemSilentText.js +12 -0
  29. package/dist/engine/messages/messageBuildSystemSilentText.js.map +1 -0
  30. package/dist/engine/messages/messageBuildSystemSilentText.spec.d.ts +2 -0
  31. package/dist/engine/messages/messageBuildSystemSilentText.spec.d.ts.map +1 -0
  32. package/dist/engine/messages/messageBuildSystemSilentText.spec.js +11 -0
  33. package/dist/engine/messages/messageBuildSystemSilentText.spec.js.map +1 -0
  34. package/dist/engine/messages/messageBuildUserFacing.d.ts +8 -0
  35. package/dist/engine/messages/messageBuildUserFacing.d.ts.map +1 -0
  36. package/dist/engine/messages/messageBuildUserFacing.js +11 -0
  37. package/dist/engine/messages/messageBuildUserFacing.js.map +1 -0
  38. package/dist/engine/messages/messageBuildUserFacing.spec.d.ts +2 -0
  39. package/dist/engine/messages/messageBuildUserFacing.spec.d.ts.map +1 -0
  40. package/dist/engine/messages/messageBuildUserFacing.spec.js +12 -0
  41. package/dist/engine/messages/messageBuildUserFacing.spec.js.map +1 -0
  42. package/dist/engine/messages/messageIsUserFacing.d.ts +6 -0
  43. package/dist/engine/messages/messageIsUserFacing.d.ts.map +1 -0
  44. package/dist/engine/messages/messageIsUserFacing.js +9 -0
  45. package/dist/engine/messages/messageIsUserFacing.js.map +1 -0
  46. package/dist/engine/messages/messageIsUserFacing.spec.d.ts +2 -0
  47. package/dist/engine/messages/messageIsUserFacing.spec.d.ts.map +1 -0
  48. package/dist/engine/messages/messageIsUserFacing.spec.js +17 -0
  49. package/dist/engine/messages/messageIsUserFacing.spec.js.map +1 -0
  50. package/dist/engine/modules/tools/sendUserMessageTool.d.ts +8 -0
  51. package/dist/engine/modules/tools/sendUserMessageTool.d.ts.map +1 -0
  52. package/dist/engine/modules/tools/sendUserMessageTool.js +51 -0
  53. package/dist/engine/modules/tools/sendUserMessageTool.js.map +1 -0
  54. package/dist/engine/modules/tools/sendUserMessageTool.spec.d.ts +2 -0
  55. package/dist/engine/modules/tools/sendUserMessageTool.spec.d.ts.map +1 -0
  56. package/dist/engine/modules/tools/sendUserMessageTool.spec.js +71 -0
  57. package/dist/engine/modules/tools/sendUserMessageTool.spec.js.map +1 -0
  58. package/dist/engine/modules/tools/toolListContextBuild.d.ts.map +1 -1
  59. package/dist/engine/modules/tools/toolListContextBuild.js +6 -0
  60. package/dist/engine/modules/tools/toolListContextBuild.js.map +1 -1
  61. package/dist/engine/modules/tools/toolListContextBuild.spec.js +30 -0
  62. package/dist/engine/modules/tools/toolListContextBuild.spec.js.map +1 -1
  63. package/dist/prompts/SYSTEM.md +12 -5
  64. package/dist/settings.d.ts +8 -2
  65. package/dist/settings.d.ts.map +1 -1
  66. package/dist/settings.js.map +1 -1
  67. package/dist/util/tagExtract.d.ts +6 -0
  68. package/dist/util/tagExtract.d.ts.map +1 -1
  69. package/dist/util/tagExtract.js +25 -0
  70. package/dist/util/tagExtract.js.map +1 -1
  71. package/dist/util/tagExtract.spec.js +29 -1
  72. package/dist/util/tagExtract.spec.js.map +1 -1
  73. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildSystemSilentText.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildSystemSilentText.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAY,EACZ,MAAe;IAEf,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,OAAO,yBAAyB,SAAS,IAAI,OAAO,0BAA0B,CAAC;AACjF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageBuildSystemSilentText.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildSystemSilentText.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildSystemSilentText.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { messageBuildSystemSilentText } from "./messageBuildSystemSilentText.js";
3
+ describe("messageBuildSystemSilentText", () => {
4
+ it("wraps trimmed text with silent system tags", () => {
5
+ expect(messageBuildSystemSilentText(" hello ")).toBe("<system_message_silent>hello</system_message_silent>");
6
+ });
7
+ it("adds origin metadata when provided", () => {
8
+ expect(messageBuildSystemSilentText("ping", "agent-123")).toBe('<system_message_silent origin="agent-123">ping</system_message_silent>');
9
+ });
10
+ });
11
+ //# sourceMappingURL=messageBuildSystemSilentText.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildSystemSilentText.spec.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildSystemSilentText.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAClD,sDAAsD,CACvD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAC5D,wEAAwE,CACzE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wraps text in a <message_for_user> XML tag for delivery to the foreground agent.
3
+ * The foreground agent is instructed to present this content to the user.
4
+ *
5
+ * Expects: text is non-empty; origin is the sending agent's ID.
6
+ */
7
+ export declare function messageBuildUserFacing(text: string, origin: string): string;
8
+ //# sourceMappingURL=messageBuildUserFacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildUserFacing.d.ts","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildUserFacing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAGR"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Wraps text in a <message_for_user> XML tag for delivery to the foreground agent.
3
+ * The foreground agent is instructed to present this content to the user.
4
+ *
5
+ * Expects: text is non-empty; origin is the sending agent's ID.
6
+ */
7
+ export function messageBuildUserFacing(text, origin) {
8
+ const trimmed = text.trim();
9
+ return `<message_for_user origin="${origin}">${trimmed}</message_for_user>`;
10
+ }
11
+ //# sourceMappingURL=messageBuildUserFacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildUserFacing.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildUserFacing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,6BAA6B,MAAM,KAAK,OAAO,qBAAqB,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageBuildUserFacing.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildUserFacing.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildUserFacing.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { messageBuildUserFacing } from "./messageBuildUserFacing.js";
3
+ describe("messageBuildUserFacing", () => {
4
+ it("wraps trimmed text with message_for_user tags and origin", () => {
5
+ expect(messageBuildUserFacing(" hello ", "agent-1")).toBe('<message_for_user origin="agent-1">hello</message_for_user>');
6
+ });
7
+ it("preserves multiline content", () => {
8
+ const result = messageBuildUserFacing("line1\nline2", "a");
9
+ expect(result).toBe('<message_for_user origin="a">line1\nline2</message_for_user>');
10
+ });
11
+ });
12
+ //# sourceMappingURL=messageBuildUserFacing.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageBuildUserFacing.spec.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageBuildUserFacing.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CACvD,6DAA6D,CAC9D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAsB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Detects whether a message contains a <message_for_user> tag.
3
+ * Returns true when the trimmed text starts with `<message_for_user`.
4
+ */
5
+ export declare function messageIsUserFacing(text: string): boolean;
6
+ //# sourceMappingURL=messageIsUserFacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageIsUserFacing.d.ts","sourceRoot":"","sources":["../../../sources/engine/messages/messageIsUserFacing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Detects whether a message contains a <message_for_user> tag.
3
+ * Returns true when the trimmed text starts with `<message_for_user`.
4
+ */
5
+ export function messageIsUserFacing(text) {
6
+ const trimmed = text.trim();
7
+ return trimmed.startsWith("<message_for_user");
8
+ }
9
+ //# sourceMappingURL=messageIsUserFacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageIsUserFacing.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageIsUserFacing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageIsUserFacing.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageIsUserFacing.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/messages/messageIsUserFacing.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { messageIsUserFacing } from "./messageIsUserFacing.js";
3
+ describe("messageIsUserFacing", () => {
4
+ it("returns true for message_for_user tag", () => {
5
+ expect(messageIsUserFacing('<message_for_user origin="a1">hello</message_for_user>')).toBe(true);
6
+ });
7
+ it("returns true with leading whitespace", () => {
8
+ expect(messageIsUserFacing(' <message_for_user origin="a1">hi</message_for_user>')).toBe(true);
9
+ });
10
+ it("returns false for system_message tag", () => {
11
+ expect(messageIsUserFacing("<system_message>hello</system_message>")).toBe(false);
12
+ });
13
+ it("returns false for plain text", () => {
14
+ expect(messageIsUserFacing("just a normal message")).toBe(false);
15
+ });
16
+ });
17
+ //# sourceMappingURL=messageIsUserFacing.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageIsUserFacing.spec.js","sourceRoot":"","sources":["../../../sources/engine/messages/messageIsUserFacing.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,mBAAmB,CAAC,wDAAwD,CAAC,CAC9E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CACJ,mBAAmB,CAAC,uDAAuD,CAAC,CAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,mBAAmB,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ToolDefinition } from "@/types";
2
+ /**
3
+ * Builds the send_user_message tool for background agents.
4
+ * Posts a <message_for_user> system message to the foreground agent,
5
+ * forcing it to present the content to the user.
6
+ */
7
+ export declare function sendUserMessageToolBuild(): ToolDefinition;
8
+ //# sourceMappingURL=sendUserMessageTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserMessageTool.d.ts","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/sendUserMessageTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAY9C;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAiDzD"}
@@ -0,0 +1,51 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { messageBuildUserFacing } from "../../messages/messageBuildUserFacing.js";
3
+ const schema = Type.Object({
4
+ text: Type.String({ minLength: 1 })
5
+ }, { additionalProperties: false });
6
+ /**
7
+ * Builds the send_user_message tool for background agents.
8
+ * Posts a <message_for_user> system message to the foreground agent,
9
+ * forcing it to present the content to the user.
10
+ */
11
+ export function sendUserMessageToolBuild() {
12
+ return {
13
+ tool: {
14
+ name: "send_user_message",
15
+ description: "Send a message that must be presented to the user. " +
16
+ "The foreground agent will rephrase and deliver it. " +
17
+ "Use for user-facing updates, results, or notifications.",
18
+ parameters: schema
19
+ },
20
+ execute: async (args, toolContext, toolCall) => {
21
+ const payload = args;
22
+ const descriptor = toolContext.agent.descriptor;
23
+ const origin = toolContext.agent.id;
24
+ // Resolve target: parent agent for subagents/apps, most recent foreground otherwise
25
+ const targetAgentId = descriptor.type === "subagent" || descriptor.type === "app"
26
+ ? descriptor.parentAgentId
27
+ : undefined;
28
+ const resolvedTarget = targetAgentId ?? toolContext.agentSystem.agentFor("most-recent-foreground");
29
+ if (!resolvedTarget) {
30
+ throw new Error("No foreground agent found to deliver the message.");
31
+ }
32
+ const wrappedText = messageBuildUserFacing(payload.text, origin);
33
+ await toolContext.agentSystem.post({ agentId: resolvedTarget }, { type: "system_message", text: wrappedText, origin });
34
+ const toolMessage = {
35
+ role: "toolResult",
36
+ toolCallId: toolCall.id,
37
+ toolName: toolCall.name,
38
+ content: [
39
+ {
40
+ type: "text",
41
+ text: "Message queued for user delivery."
42
+ }
43
+ ],
44
+ isError: false,
45
+ timestamp: Date.now()
46
+ };
47
+ return { toolMessage, files: [] };
48
+ }
49
+ };
50
+ }
51
+ //# sourceMappingURL=sendUserMessageTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserMessageTool.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/sendUserMessageTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAItD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CACxB;IACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;CACpC,EACD,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAC;AAIF;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,qDAAqD;gBACrD,qDAAqD;gBACrD,yDAAyD;YAC3D,UAAU,EAAE,MAAM;SACnB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAA2B,CAAC;YAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;YAChD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAEpC,oFAAoF;YACpF,MAAM,aAAa,GACjB,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK;gBACzD,CAAC,CAAC,UAAU,CAAC,aAAa;gBAC1B,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,cAAc,GAClB,aAAa,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAChC,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CACtD,CAAC;YAEF,MAAM,WAAW,GAAsB;gBACrC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mCAAmC;qBAC1C;iBACF;gBACD,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sendUserMessageTool.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserMessageTool.spec.d.ts","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/sendUserMessageTool.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { sendUserMessageToolBuild } from "./sendUserMessageTool.js";
3
+ const toolCall = { id: "tool-1", name: "send_user_message" };
4
+ describe("sendUserMessageToolBuild", () => {
5
+ it("posts message_for_user to parent agent for subagents", async () => {
6
+ const post = vi.fn();
7
+ const tool = sendUserMessageToolBuild();
8
+ const ctx = contextBuild({
9
+ agentId: "bg-1",
10
+ descriptor: { type: "subagent", id: "bg-1", parentAgentId: "fg-1", name: "worker" },
11
+ post
12
+ });
13
+ const result = await tool.execute({ text: "task done" }, ctx, toolCall);
14
+ expect(post).toHaveBeenCalledWith({ agentId: "fg-1" }, {
15
+ type: "system_message",
16
+ text: '<message_for_user origin="bg-1">task done</message_for_user>',
17
+ origin: "bg-1"
18
+ });
19
+ expect(result.toolMessage.isError).toBe(false);
20
+ });
21
+ it("falls back to most-recent-foreground when no parent", async () => {
22
+ const post = vi.fn();
23
+ const tool = sendUserMessageToolBuild();
24
+ const ctx = contextBuild({
25
+ agentId: "bg-2",
26
+ descriptor: { type: "permanent", id: "bg-2", name: "bot" },
27
+ post,
28
+ foregroundAgentId: "fg-main"
29
+ });
30
+ await tool.execute({ text: "hello user" }, ctx, toolCall);
31
+ expect(post).toHaveBeenCalledWith({ agentId: "fg-main" }, expect.objectContaining({ type: "system_message" }));
32
+ });
33
+ it("throws when no foreground agent is found", async () => {
34
+ const tool = sendUserMessageToolBuild();
35
+ const ctx = contextBuild({
36
+ agentId: "bg-3",
37
+ descriptor: { type: "permanent", id: "bg-3", name: "bot" },
38
+ post: vi.fn(),
39
+ foregroundAgentId: null
40
+ });
41
+ await expect(tool.execute({ text: "hi" }, ctx, toolCall)).rejects.toThrow("No foreground agent found");
42
+ });
43
+ });
44
+ function contextBuild(opts) {
45
+ return {
46
+ connectorRegistry: null,
47
+ fileStore: null,
48
+ auth: null,
49
+ logger: console,
50
+ assistant: null,
51
+ permissions: {
52
+ workingDir: "/tmp",
53
+ writeDirs: ["/tmp"],
54
+ readDirs: ["/tmp"],
55
+ network: false,
56
+ events: false
57
+ },
58
+ agent: {
59
+ id: opts.agentId,
60
+ descriptor: opts.descriptor
61
+ },
62
+ source: "test",
63
+ messageContext: {},
64
+ agentSystem: {
65
+ post: opts.post,
66
+ agentFor: () => opts.foregroundAgentId ?? undefined
67
+ },
68
+ heartbeats: null
69
+ };
70
+ }
71
+ //# sourceMappingURL=sendUserMessageTool.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUserMessageTool.spec.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/sendUserMessageTool.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolListContextBuild.d.ts","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAI7E,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IAC3D,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;CACtD,CAAC;AAOF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CAuCrE"}
1
+ {"version":3,"file":"toolListContextBuild.d.ts","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAI7E,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;IAC3D,aAAa,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;CACtD,CAAC;AAWF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CA0CrE"}
@@ -4,6 +4,9 @@ const BACKGROUND_TOOL_DENYLIST = new Set([
4
4
  "set_reaction",
5
5
  "send_file"
6
6
  ]);
7
+ const FOREGROUND_TOOL_DENYLIST = new Set([
8
+ "send_user_message"
9
+ ]);
7
10
  /**
8
11
  * Builds the tool list for an agent context based on connector capabilities.
9
12
  * Expects: tool names are unique; connector registry is available for capability checks.
@@ -20,6 +23,9 @@ export function toolListContextBuild(options) {
20
23
  if (options.agentKind === "background") {
21
24
  tools = tools.filter((tool) => !BACKGROUND_TOOL_DENYLIST.has(tool.name));
22
25
  }
26
+ if (options.agentKind === "foreground") {
27
+ tools = tools.filter((tool) => !FOREGROUND_TOOL_DENYLIST.has(tool.name));
28
+ }
23
29
  const connectorCapabilities = source
24
30
  ? options.connectorRegistry.get(source)?.capabilities ?? null
25
31
  : null;
@@ -1 +1 @@
1
- {"version":3,"file":"toolListContextBuild.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolListContextBuild.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAa5E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,cAAc;IACd,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC1B,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3D,KAAK,GAAG,KAAK,CAAC,MAAM,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;QACvC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,qBAAqB,GAAG,MAAM;QAClC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,IAAI,IAAI;QAC7D,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,CAAC,qBAAqB,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,OAAO;aACJ,iBAAiB;aACjB,IAAI,EAAE;aACN,IAAI,CACH,CAAC,EAAE,EAAE,EAAE,CACL,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CACrF,CAAC;IACR,MAAM,iBAAiB,GAAG,MAAM;QAC9B,CAAC,CAAC,qBAAqB,EAAE,SAAS,KAAK,IAAI;QAC3C,CAAC,CAAC,OAAO;aACJ,iBAAiB;aACjB,IAAI,EAAE;aACN,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAExF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,mCAAmC,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAAoB;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL;YACE,GAAG,SAAS;YACZ,WAAW,EAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;SACpD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAC1C,KAAU,EACV,aAAsB,EACtB,iBAA0B;IAE1B,IAAI,QAAQ,GAAQ,KAAK,CAAC;IAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -7,6 +7,7 @@ const baseTools = [
7
7
  { name: "send_file", description: "", parameters: {} },
8
8
  { name: "set_reaction", description: "", parameters: {} },
9
9
  { name: "generate_image", description: "", parameters: {} },
10
+ { name: "send_user_message", description: "", parameters: {} },
10
11
  { name: "other", description: "", parameters: {} }
11
12
  ];
12
13
  describe("toolListContextBuild", () => {
@@ -75,6 +76,35 @@ describe("toolListContextBuild", () => {
75
76
  const names = result.map((tool) => tool.name);
76
77
  expect(names).not.toContain("generate_image");
77
78
  });
79
+ it("removes send_user_message for foreground agents", () => {
80
+ const result = toolListContextBuild({
81
+ tools: baseTools,
82
+ source: "slack",
83
+ agentKind: "foreground",
84
+ connectorRegistry: {
85
+ get: () => null,
86
+ list: () => []
87
+ },
88
+ imageRegistry: { list: () => [] }
89
+ });
90
+ const names = result.map((tool) => tool.name);
91
+ expect(names).not.toContain("send_user_message");
92
+ expect(names).toContain("other");
93
+ });
94
+ it("keeps send_user_message for background agents", () => {
95
+ const result = toolListContextBuild({
96
+ tools: baseTools,
97
+ source: "slack",
98
+ agentKind: "background",
99
+ connectorRegistry: {
100
+ get: () => null,
101
+ list: () => []
102
+ },
103
+ imageRegistry: { list: () => [] }
104
+ });
105
+ const names = result.map((tool) => tool.name);
106
+ expect(names).toContain("send_user_message");
107
+ });
78
108
  it("returns only run_python in rlm mode", () => {
79
109
  const result = toolListContextBuild({
80
110
  tools: baseTools,
@@ -1 +1 @@
1
- {"version":3,"file":"toolListContextBuild.spec.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolListContextBuild.spec.js","sourceRoot":"","sources":["../../../../sources/engine/modules/tools/toolListContextBuild.spec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  {{#if isForeground}}
2
2
  You are a personal assistant running inside Daycare. You have real agency — act on it. Don't wait to be told what to do next. Anticipate, initiate, and drive things forward. Speed and decisiveness matter more than asking for confirmation.
3
3
  {{else}}
4
- You are a background agent running inside Daycare. Cannot message users directly. Work autonomously — don't wait, don't ask, just deliver results.{{#if parentAgentId}} Wrap results in `<response>...</response>` tags — the system extracts everything between the first `<response>` and last `</response>`, trims whitespace, and delivers it unmodified to your parent. No escaping needed. You can emit `<response>` multiple times during your work — each one is delivered immediately. Use `send_agent_message` only for messaging other agents.
5
- Parent: {{parentAgentId}}{{else}} Use `send_agent_message` to report to foreground agents.{{/if}}
4
+ You are a background agent running inside Daycare. Cannot message users directly. Work autonomously — don't wait, don't ask, just deliver results.{{#if parentAgentId}} Wrap results in `<response>...</response>` tags — the system extracts everything between the first `<response>` and last `</response>`, trims whitespace, and delivers it unmodified to your parent. No escaping needed. You can emit `<response>` multiple times during your work — each one is delivered immediately. Use `send_agent_message` for inter-agent communication. Use `send_user_message` when you have something the user should see — the foreground agent will rephrase it and deliver it on your behalf.
5
+ Parent: {{parentAgentId}}{{else}} Use `send_agent_message` to report to foreground agents. Use `send_user_message` when you have something the user should see — the foreground agent will rephrase it and deliver it on your behalf.{{/if}}
6
6
  {{/if}}
7
7
 
8
8
  Current date: {{date}}
@@ -48,7 +48,8 @@ You can create other agents. Two kinds:
48
48
 
49
49
  The difference: subagents are cheap, private, session-scoped. Permanent agents are public infrastructure that outlives you.
50
50
 
51
- `<system_message origin="<agentId>">` messages are internal updates from agents, not user requests.
51
+ `<system_message origin="<agentId>">` = internal agent update that wakes you to act on it. Not a user request — handle internally; only relay to the user if you decide the content is relevant.
52
+ `<system_message_silent origin="<agentId>">` = was appended to your context without triggering inference. You are seeing it now because something else woke you.
52
53
 
53
54
  {{#if permanentAgentsPrompt}}
54
55
  {{{permanentAgentsPrompt}}}
@@ -236,7 +237,9 @@ Before answering about prior work, decisions, people, preferences: check memory
236
237
  ## Messages
237
238
 
238
239
  Incoming: `<time>...</time><message_id>...</message_id><message>...</message>`.{{#if isForeground}} Use `message_id` for reactions.{{/if}}
239
- `<system_message origin="<agentId>">` = internal agent updates, not user requests.
240
+ `<system_message origin="<agentId>">` = internal agent update that woke you to act. Handle internally; only relay to the user if you decide the content is relevant.
241
+ `<system_message_silent origin="<agentId>">` = was appended to your context without triggering inference. You are seeing it now because something else woke you.
242
+ `<message_for_user origin="<agentId>">` = a background agent is asking you to relay this to the user. You MUST always reply to the user when you receive one — never ignore it, never suppress it with `NO_MESSAGE`. The content inside is often raw or technical; do not paste it verbatim. Instead, rephrase it into a clear, natural message that fits your current conversation with the user.
240
243
  Connector and image-generation files are provided as file paths under `{{workspace}}/files`; never expect inline/base64 bytes in message content.
241
244
 
242
245
  {{#if isForeground}}
@@ -246,9 +249,13 @@ Connector and image-generation files are provided as file paths under `{{workspa
246
249
  Plain text, no formatting.
247
250
  {{/if}}
248
251
 
252
+ {{#if features.say}}
253
+ Wrap text meant for the user in `<say>...</say>` tags. Only content inside `<say>` tags is delivered — everything outside is internal reasoning the user never sees. Multiple `<say>` blocks in one response are sent as separate messages. If you have nothing to say, omit `<say>` tags entirely (output is suppressed automatically).
254
+ {{else}}
249
255
  Reply `NO_MESSAGE` (exact, sole text) to suppress all output. Reserved token — never in normal replies. Works alongside tool calls.
256
+ {{/if}}
250
257
 
251
- Human can't see Toll call messages, so assume that. Also do not end your message with ":" since next message (tool call) wont be visible.
258
+ Human can't see tool call messages, so assume that. Also do not end your message with ":" since next message (tool call) won't be visible.
252
259
 
253
260
  ---
254
261
 
@@ -32,12 +32,18 @@ export type AgentSettings = {
32
32
  export type SecuritySettings = {
33
33
  appReviewerEnabled?: boolean;
34
34
  };
35
- export type ResolvedSettingsConfig = Omit<SettingsConfig, "agents" | "security"> & {
35
+ export type FeaturesConfig = {
36
+ say?: boolean;
37
+ rlm?: boolean;
38
+ };
39
+ export type ResolvedFeaturesConfig = Required<FeaturesConfig>;
40
+ export type ResolvedSettingsConfig = Omit<SettingsConfig, "agents" | "security" | "features"> & {
36
41
  agents: Required<AgentSettings>;
37
42
  security: Required<SecuritySettings>;
43
+ features: ResolvedFeaturesConfig;
38
44
  };
39
45
  export type SettingsConfig = {
40
- rlm?: boolean;
46
+ features?: FeaturesConfig;
41
47
  engine?: {
42
48
  socketPath?: string;
43
49
  dataDir?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../sources/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../sources/settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../sources/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../sources/settings.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@
7
7
  * Returns null if either the opening or closing tag is missing.
8
8
  */
9
9
  export declare function tagExtract(text: string, tag: string): string | null;
10
+ /**
11
+ * Extracts content from all non-overlapping `<tag>...</tag>` pairs in order.
12
+ * Each pair is matched greedily to its nearest closing tag. Content is trimmed.
13
+ * Returns empty array if no complete pairs are found.
14
+ */
15
+ export declare function tagExtractAll(text: string, tag: string): string[];
10
16
  /**
11
17
  * Removes the matched tag block (first open to last close, inclusive) from text.
12
18
  * Returns the remaining text. If no complete tag block is found, returns text unchanged.
@@ -1 +1 @@
1
- {"version":3,"file":"tagExtract.d.ts","sourceRoot":"","sources":["../../sources/util/tagExtract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAuB1D"}
1
+ {"version":3,"file":"tagExtract.d.ts","sourceRoot":"","sources":["../../sources/util/tagExtract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBjE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAuB1D"}
@@ -23,6 +23,31 @@ export function tagExtract(text, tag) {
23
23
  }
24
24
  return text.slice(contentStart, closeIndex).trim();
25
25
  }
26
+ /**
27
+ * Extracts content from all non-overlapping `<tag>...</tag>` pairs in order.
28
+ * Each pair is matched greedily to its nearest closing tag. Content is trimmed.
29
+ * Returns empty array if no complete pairs are found.
30
+ */
31
+ export function tagExtractAll(text, tag) {
32
+ const results = [];
33
+ const openPattern = new RegExp(`<${escapeRegExp(tag)}(\\s[^>]*)?>`, "gi");
34
+ const closePattern = buildCloseTagPattern(tag);
35
+ let cursor = 0;
36
+ while (cursor < text.length) {
37
+ openPattern.lastIndex = cursor;
38
+ const openMatch = openPattern.exec(text);
39
+ if (!openMatch)
40
+ break;
41
+ const contentStart = openMatch.index + openMatch[0].length;
42
+ closePattern.lastIndex = contentStart;
43
+ const closeMatch = closePattern.exec(text);
44
+ if (!closeMatch)
45
+ break;
46
+ results.push(text.slice(contentStart, closeMatch.index).trim());
47
+ cursor = closeMatch.index + closeMatch[0].length;
48
+ }
49
+ return results;
50
+ }
26
51
  /**
27
52
  * Removes the matched tag block (first open to last close, inclusive) from text.
28
53
  * Returns the remaining text. If no complete tag block is found, returns text unchanged.
@@ -1 +1 @@
1
- {"version":3,"file":"tagExtract.js","sourceRoot":"","sources":["../../sources/util/tagExtract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagExtract.js","sourceRoot":"","sources":["../../sources/util/tagExtract.ts"],"names":[],"mappings":"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"}