UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

294 lines (293 loc) • 7.84 kB
{ "repo": "core", "version": "7.51.2", "from": "a5c7c33244f7b139e674093f35159037fdfb63da", "to": "v7.51.2", "added": [ { "name": "BUILTIN_SUBAGENT_TYPES", "kind": "variable", "tier": "advanced", "at": [ "src/agents/subagent.ts:680", "src/index.ts:3032" ], "criteriaCovered": false, "breaking": false }, { "name": "BuiltinSubagentType", "kind": "type", "tier": "advanced", "at": [ "src/agents/subagent.ts:682", "src/index.ts:3027" ], "criteriaCovered": false, "breaking": false }, { "name": "McpToolAxesRead", "kind": "type", "tier": "advanced", "at": [ "src/core/mcp-server-spec.ts:161", "src/core/types.ts:32", "src/index.ts:3537" ], "criteriaCovered": false, "breaking": false }, { "name": "SESSION_RULES_GRAMMAR", "kind": "variable", "tier": "advanced", "at": [ "src/core/session-policy-store.ts:65", "src/index.ts:375" ], "criteriaCovered": false, "breaking": false }, { "name": "SessionRulesInGrammar", "kind": "type", "tier": "advanced", "at": [ "src/core/session-policy-store.ts:82", "src/index.ts:377" ], "criteriaCovered": false, "breaking": false }, { "name": "compileSessionRuleBucket", "kind": "function", "tier": "advanced", "at": [ "src/core/session-policy-store.ts:356", "src/index.ts:376" ], "criteriaCovered": false, "breaking": false }, { "name": "readMcpToolAxes", "kind": "function", "tier": "advanced", "at": [ "src/core/mcp-server-spec.ts:242", "src/core/types.ts:33", "src/index.ts:3536" ], "criteriaCovered": false, "breaking": false } ], "removed": [], "changed": [], "narrowed": [ { "id": "F2", "source": "behaviorFlips.summary", "text": "#1763 (additive + admission narrowing): `readMcpToolAxes(raw)` is the one runtime judge of `McpServerSpec.toolAxes` (exported from the root; vocabulary derived from `SAFETY_AXIS_VOCABULARY`); the task admission door and the `materializeMcpTools` convergence point both ask it, and a malformed declaration refuses that server entry loudly (no spawn) instead of being trusted by type." } ], "closedSetMembers": [ { "set": "ALLOW_ENTRY_INERT_REASONS", "at": [ "src/core/allow-entry.ts:48" ], "newSet": false, "added": [ "earlier_grammar" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "BUILTIN_SUBAGENT_TYPES", "at": [ "src/agents/subagent.ts:680" ], "newSet": true, "added": [ "Explore", "Plan", "fork", "general-purpose" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "set": "BuiltinSubagentType", "at": [ "src/agents/subagent.ts:682", "src/index.ts:3027" ], "newSet": true, "added": [ "Explore", "Plan", "fork", "general-purpose" ], "removed": [], "breaking": false, "criteriaCovered": false } ], "closedSetsUnreadable": [], "typeKeys": [ { "type": "StoredSessionRules", "at": [ "src/core/session-policy-store.ts:68" ], "added": [ "grammar" ], "addedDetail": [ { "key": "grammar", "optional": true } ], "addedRequired": [], "removed": [], "breaking": false, "criteriaCovered": false } ], "typeKeysUnreadableArms": [], "typeKeysFlattenedCount": 235, "signatures": [ { "name": "createSessionRulePolicy", "at": [ "src/core/runner/session-rule-policy.ts:326" ], "from": [ "(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; anchors?: PathRuleBases; }): NamedToolPolicy" ], "to": [ "(rules: SessionPermissionRules | SessionRuleSource, opts: { env: ExecutionEnv; rootPath?: string; toolEffects?: ReadonlyMap<string, ToolEffect>; anchors?: PathRuleBases; onEarlierGrammar?: (entries: readonly string[]) => void; }): NamedToolPolicy" ], "changes": [ { "aspect": "param", "detail": "param 2 `opts` type widened: …nchors?: PathRuleBases; [ -> onEarlierGrammar?: (entries: readonly string[]) => void; ]}", "breaking": false } ], "breaking": false, "criteriaCovered": false }, { "name": "judgeSessionRulesWrite", "at": [ "src/core/session-policy-store.ts:441" ], "from": [ "(prior: StoredSessionRules | null, rules: unknown, opts: PutRulesOptions | undefined, mountedToolNames?: ReadonlySet<string>): SessionPermissionRules" ], "to": [ "(prior: StoredSessionRules | null, rules: unknown, opts: PutRulesOptions | undefined, mountedToolNames?: ReadonlySet<string>): SessionPermissionRules & { grammar: number; }" ], "changes": [ { "aspect": "returns", "detail": "return type SessionPermissionRules[ -> & { grammar: number; }]", "breaking": true } ], "breaking": true, "criteriaCovered": false }, { "name": "readSessionRulesShape", "at": [ "src/core/session-policy-store.ts:285" ], "from": [ "(value: unknown): { fault: SessionRuleShapeRefusal; sentence: string; } | { rules: SessionPermissionRules; }" ], "to": [ "(value: unknown): { fault: SessionRuleShapeRefusal; sentence: string; } | { rules: SessionRulesInGrammar; }" ], "changes": [ { "aspect": "returns", "detail": "return type …ng; } | { rules: Session[PermissionRules -> RulesInGrammar]; }", "breaking": true } ], "breaking": true, "criteriaCovered": false } ], "declarationMoves": [], "mintMoves": [], "criteriaObserves": [ { "kind": "taskEventField", "name": "tool_end.gate", "assertions": [ "G1.a", "G1.c", "G2.b" ] }, { "kind": "typeMember", "name": "AgentDefinition.name", "assertions": [ "G3.a" ] }, { "kind": "typeMember", "name": "McpServerSpec.toolAxes", "assertions": [ "G2.a" ] }, { "kind": "typeMember", "name": "StoredSessionRules.rev", "assertions": [ "G1.b" ] } ], "consumersHint": { "cli": [ "ALLOW_ENTRY_INERT_REASONS", "StoredSessionRules" ], "server": [ "ALLOW_ENTRY_INERT_REASONS", "McpToolAxesRead", "StoredSessionRules", "createSessionRulePolicy", "judgeSessionRulesWrite", "readMcpToolAxes", "readSessionRulesShape" ], "sdk": [ "ALLOW_ENTRY_INERT_REASONS", "StoredSessionRules" ], "note": "scanned cli@800f2dc8 server@01b2b2ef sdk@fa0c123 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it" }, "breakingCount": 2, "breakingItems": [ "signature changed: judgeSessionRulesWrite — return type SessionPermissionRules[ -> & { grammar: number; }]", "signature changed: readSessionRulesShape — return type …ng; } | { rules: Session[PermissionRules -> RulesInGrammar]; }" ], "toResolvedAt": "97c8b3e2ab9bc4d63bbbeb55ea858cc2a4f36c10" }