@dudousxd/nestjs-agent-core 0.35.0 → 0.36.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.
package/dist/index.cjs CHANGED
@@ -54,6 +54,7 @@ __export(src_exports, {
54
54
  ASK_TOOL_NAME: () => ASK_TOOL_NAME,
55
55
  AgentRegistry: () => AgentRegistry,
56
56
  AgentStreamError: () => AgentStreamError,
57
+ ClosedRolesPolicy: () => ClosedRolesPolicy,
57
58
  DEFAULT_HISTORY_SUMMARY_INSTRUCTION: () => DEFAULT_HISTORY_SUMMARY_INSTRUCTION,
58
59
  DEFAULT_INCREMENTAL_LOOKBACK_CHARS: () => DEFAULT_INCREMENTAL_LOOKBACK_CHARS,
59
60
  DEFAULT_INTAKE_PREAMBLE: () => DEFAULT_INTAKE_PREAMBLE,
@@ -104,6 +105,7 @@ __export(src_exports, {
104
105
  buildMemoryBlock: () => buildMemoryBlock,
105
106
  buildSkillsBlock: () => buildSkillsBlock,
106
107
  canActorUseTool: () => canActorUseTool,
108
+ closeEmptyRoles: () => closeEmptyRoles,
107
109
  compositeSkillProvider: () => compositeSkillProvider,
108
110
  createFrameBuffer: () => createFrameBuffer,
109
111
  createIncrementalGate: () => createIncrementalGate,
@@ -2907,15 +2909,40 @@ var DefaultRolesPolicy = class {
2907
2909
  __name(this, "DefaultRolesPolicy");
2908
2910
  }
2909
2911
  defaultRoles;
2910
- constructor(defaultRoles = []) {
2912
+ /** What an empty roles list means here — see {@link EmptyRoles}. */
2913
+ emptyRoles;
2914
+ constructor(defaultRoles = [], options = {}) {
2911
2915
  this.defaultRoles = defaultRoles;
2916
+ this.emptyRoles = options.emptyRoles ?? "allow";
2912
2917
  }
2913
2918
  can(actor, tool) {
2914
2919
  const allowed = tool.roles ?? this.defaultRoles;
2915
- if (allowed.length === 0) return true;
2920
+ if (allowed.length === 0) return this.emptyRoles === "allow";
2916
2921
  return (actor.roles ?? []).some((role) => allowed.includes(role));
2917
2922
  }
2918
2923
  };
2924
+ var ClosedRolesPolicy = class extends DefaultRolesPolicy {
2925
+ static {
2926
+ __name(this, "ClosedRolesPolicy");
2927
+ }
2928
+ constructor(defaultRoles = []) {
2929
+ super(defaultRoles, {
2930
+ emptyRoles: "deny"
2931
+ });
2932
+ }
2933
+ };
2934
+ function closeEmptyRoles(inner) {
2935
+ const defaults = inner instanceof DefaultRolesPolicy ? inner.defaultRoles : [];
2936
+ return {
2937
+ can(actor, tool) {
2938
+ if (tool.ability === void 0 && (tool.roles ?? defaults).length === 0) {
2939
+ return false;
2940
+ }
2941
+ return inner.can(actor, tool);
2942
+ }
2943
+ };
2944
+ }
2945
+ __name(closeEmptyRoles, "closeEmptyRoles");
2919
2946
 
2920
2947
  // src/agent-loop.ts
2921
2948
  var import_node_crypto = require("crypto");
@@ -6014,6 +6041,7 @@ var InMemoryAgentStore = class {
6014
6041
  ASK_TOOL_NAME,
6015
6042
  AgentRegistry,
6016
6043
  AgentStreamError,
6044
+ ClosedRolesPolicy,
6017
6045
  DEFAULT_HISTORY_SUMMARY_INSTRUCTION,
6018
6046
  DEFAULT_INCREMENTAL_LOOKBACK_CHARS,
6019
6047
  DEFAULT_INTAKE_PREAMBLE,
@@ -6064,6 +6092,7 @@ var InMemoryAgentStore = class {
6064
6092
  buildMemoryBlock,
6065
6093
  buildSkillsBlock,
6066
6094
  canActorUseTool,
6095
+ closeEmptyRoles,
6067
6096
  compositeSkillProvider,
6068
6097
  createFrameBuffer,
6069
6098
  createIncrementalGate,