@sema-agent/core 1.315.0 → 1.317.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.
Files changed (49) hide show
  1. package/dist/agents/roster-store.d.ts +39 -0
  2. package/dist/agents/roster-store.d.ts.map +1 -0
  3. package/dist/agents/roster-store.js +0 -0
  4. package/dist/agents/roster-store.js.map +1 -0
  5. package/dist/agents/subagent.d.ts +7 -0
  6. package/dist/agents/subagent.d.ts.map +1 -1
  7. package/dist/agents/subagent.js +82 -5
  8. package/dist/agents/subagent.js.map +1 -1
  9. package/dist/core/auto-compaction.d.ts +1 -0
  10. package/dist/core/auto-compaction.d.ts.map +1 -1
  11. package/dist/core/auto-compaction.js +1 -1
  12. package/dist/core/auto-compaction.js.map +1 -1
  13. package/dist/core/runner/prepare-task.d.ts +6 -0
  14. package/dist/core/runner/prepare-task.d.ts.map +1 -1
  15. package/dist/core/runner/prepare-task.js +32 -20
  16. package/dist/core/runner/prepare-task.js.map +1 -1
  17. package/dist/core/runner/runtask.d.ts.map +1 -1
  18. package/dist/core/runner/runtask.js +56 -14
  19. package/dist/core/runner/runtask.js.map +1 -1
  20. package/dist/core/runner/turn-attachments.d.ts +8 -0
  21. package/dist/core/runner/turn-attachments.d.ts.map +1 -1
  22. package/dist/core/runner/turn-attachments.js +60 -2
  23. package/dist/core/runner/turn-attachments.js.map +1 -1
  24. package/dist/core/types.d.ts +4 -0
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/prompt-assembly/assemble.d.ts.map +1 -1
  31. package/dist/prompt-assembly/assemble.js +3 -1
  32. package/dist/prompt-assembly/assemble.js.map +1 -1
  33. package/dist/prompt-assembly/composer.d.ts.map +1 -1
  34. package/dist/prompt-assembly/composer.js +1 -0
  35. package/dist/prompt-assembly/composer.js.map +1 -1
  36. package/dist/prompt-assembly/epoch.d.ts +10 -4
  37. package/dist/prompt-assembly/epoch.d.ts.map +1 -1
  38. package/dist/prompt-assembly/epoch.js +0 -0
  39. package/dist/prompt-assembly/epoch.js.map +1 -1
  40. package/dist/prompt-assembly/packs/sema-default.d.ts.map +1 -1
  41. package/dist/prompt-assembly/packs/sema-default.js +2 -0
  42. package/dist/prompt-assembly/packs/sema-default.js.map +1 -1
  43. package/dist/prompt-assembly/types.d.ts +3 -0
  44. package/dist/prompt-assembly/types.d.ts.map +1 -1
  45. package/dist/prompts/coordinator.d.ts +3 -0
  46. package/dist/prompts/coordinator.d.ts.map +1 -0
  47. package/dist/prompts/coordinator.js +200 -0
  48. package/dist/prompts/coordinator.js.map +1 -0
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ import { toImageContent } from "./image.js";
24
24
  import { OUTPUT_TOOL_NAME, SKILLS_LISTING_PROBE_HEADER, resolveOutputRetries } from "./synthetic-tools.js";
25
25
  import { cacheFamilyOf, usageCostMicroUsd } from "./usage-accounting.js";
26
26
  import { assembleResult, errorCodeOf } from "./assemble-result.js";
27
- import { ATTACHMENT_BYTE_CAP, CHANGED_FILES_MAX, SKILLS_LISTING_DELTA_HEADER, advanceCadenceClock, agentListingDeltaHeader, agentListingInitialHeader, collectDateChange, collectDueAttachments, collectInstructionsChange, commitAgentListing, commitInstructionsChange, commitSkillsListing, createAttachmentState, rebaseCadenceWindows, reduceToolEnd, renderAgentListingDelta, renderMcpInstructionsDelta, renderOrphanedBackgroundTasks, renderSkillsListingDelta, renderToolsDelta, stampWriteAnchor } from "./turn-attachments.js";
27
+ import { ATTACHMENT_BYTE_CAP, CHANGED_FILES_MAX, AGENT_LISTING_REMOVED_HEADER, SKILLS_LISTING_DELTA_HEADER, SKILLS_LISTING_REMOVED_HEADER, advanceCadenceClock, agentListingDeltaHeader, agentListingInitialHeader, replayAnnouncedListing, replayAnnouncedModels, collectDateChange, collectDueAttachments, collectInstructionsChange, commitAgentListing, commitInstructionsChange, commitSkillsListing, createAttachmentState, rebaseCadenceWindows, reduceToolEnd, renderAgentListingDelta, renderMcpInstructionsDelta, renderOrphanedBackgroundTasks, renderSkillsListingDelta, renderToolsDelta, stampWriteAnchor } from "./turn-attachments.js";
28
28
  import { prepareTask } from "./prepare-task.js";
29
29
  import { hasVerifiableStructureSignal } from "./grounding-signal.js";
30
30
  import { hasDestroy, isIsolated } from "../remote-env.js";
@@ -863,16 +863,34 @@ export class Runner {
863
863
  return "";
864
864
  };
865
865
  let branchTexts = null;
866
- const branchIncludes = async (headers) => {
866
+ const branchLoad = async () => {
867
+ if (branchTexts === null) {
868
+ const branch = await prepared.session.getBranch();
869
+ branchTexts = branch.flatMap((e) => {
870
+ if (e.type !== "message")
871
+ return [];
872
+ const m = e.message;
873
+ if (m.role !== "user")
874
+ return [];
875
+ const full = textOf(e.message);
876
+ if (m.engineMinted === true)
877
+ return [full];
878
+ if (Array.isArray(m.engineSegments) && m.engineSegments.length > 0) {
879
+ return m.engineSegments.map((s) => full.slice(Math.max(0, s.start), Math.max(0, s.end)));
880
+ }
881
+ if (typeof m.enginePrefixChars === "number" && m.enginePrefixChars > 0)
882
+ return [full.slice(0, m.enginePrefixChars)];
883
+ return [];
884
+ });
885
+ }
886
+ return branchTexts;
887
+ };
888
+ const branchReplay = async (headers) => {
867
889
  try {
868
- if (branchTexts === null) {
869
- const branch = await prepared.session.getBranch();
870
- branchTexts = branch.flatMap((e) => (e.type === "message" ? [textOf(e.message)] : []));
871
- }
872
- return branchTexts.some((text) => headers.some((h) => text.includes(h)));
890
+ return replayAnnouncedListing(await branchLoad(), headers);
873
891
  }
874
892
  catch {
875
- return false;
893
+ return undefined;
876
894
  }
877
895
  };
878
896
  if (agentListingOn && prepared.agentListing?.seedAnnounced === true) {
@@ -886,9 +904,22 @@ export class Runner {
886
904
  prepared.announcedListingsRef.models = [...cpListings.models];
887
905
  }
888
906
  }
889
- else if (await branchIncludes([agentListingInitialHeader(listing.toolName), agentListingDeltaHeader(listing.toolName)])) {
890
- attachState.announcedAgentTypes = new Map(listing.entries.map((e) => [e.name, e.description]));
891
- prepared.announcedListingsRef.agents = listing.entries.map((e) => e.name);
907
+ else {
908
+ const replayed = await branchReplay({
909
+ initial: agentListingInitialHeader(listing.toolName),
910
+ delta: agentListingDeltaHeader(listing.toolName),
911
+ removed: AGENT_LISTING_REMOVED_HEADER,
912
+ });
913
+ if (replayed !== undefined) {
914
+ const descOf = new Map(listing.entries.map((e) => [e.name, e.description]));
915
+ attachState.announcedAgentTypes = new Map([...replayed].map((n) => [n, descOf.get(n) ?? ""]));
916
+ prepared.announcedListingsRef.agents = [...replayed];
917
+ const replayedModels = replayAnnouncedModels(await branchLoad());
918
+ if (replayedModels !== undefined) {
919
+ attachState.announcedModels = [...replayedModels];
920
+ prepared.announcedListingsRef.models = [...replayedModels];
921
+ }
922
+ }
892
923
  }
893
924
  }
894
925
  if (skillsListingOn && prepared.skillsListing?.seedAnnounced === true) {
@@ -898,9 +929,17 @@ export class Runner {
898
929
  attachState.announcedSkills = new Map(cpListings.skills.map((n) => [n, descOf.get(n) ?? ""]));
899
930
  prepared.announcedListingsRef.skills = [...cpListings.skills];
900
931
  }
901
- else if (await branchIncludes([SKILLS_LISTING_PROBE_HEADER, SKILLS_LISTING_DELTA_HEADER])) {
902
- attachState.announcedSkills = new Map(listing.entries.map((e) => [e.name, e.description]));
903
- prepared.announcedListingsRef.skills = listing.entries.map((e) => e.name);
932
+ else {
933
+ const replayed = await branchReplay({
934
+ initial: SKILLS_LISTING_PROBE_HEADER,
935
+ delta: SKILLS_LISTING_DELTA_HEADER,
936
+ removed: SKILLS_LISTING_REMOVED_HEADER,
937
+ });
938
+ if (replayed !== undefined) {
939
+ const descOf = new Map(listing.entries.map((e) => [e.name, e.description]));
940
+ attachState.announcedSkills = new Map([...replayed].map((n) => [n, descOf.get(n) ?? ""]));
941
+ prepared.announcedListingsRef.skills = [...replayed];
942
+ }
904
943
  }
905
944
  }
906
945
  }
@@ -1683,6 +1722,7 @@ export class Runner {
1683
1722
  try {
1684
1723
  const comp = await maybeCompact({
1685
1724
  session: prepared.session,
1725
+ epochDeclaredSections: prepared.epochDeclaredSections,
1686
1726
  model: prepared.harness.getModel(),
1687
1727
  compactionModel: prepared.compModel,
1688
1728
  brain: compactionBrain,
@@ -2099,6 +2139,7 @@ export class Runner {
2099
2139
  try {
2100
2140
  const comp = await maybeCompact({
2101
2141
  session: prepared.session,
2142
+ epochDeclaredSections: prepared.epochDeclaredSections,
2102
2143
  model: event.model,
2103
2144
  compactionModel: prepared.compModel,
2104
2145
  brain: compactionBrain,
@@ -3250,6 +3291,7 @@ export class Runner {
3250
3291
  try {
3251
3292
  const finishComp = await maybeCompact({
3252
3293
  session: prepared.session,
3294
+ epochDeclaredSections: prepared.epochDeclaredSections,
3253
3295
  model: prepared.model,
3254
3296
  compactionModel: prepared.compModel,
3255
3297
  brain: opts?.brain ?? this.deps.brain,