@sema-agent/core
Version:
Stateless, task-oriented AI agent core
294 lines (293 loc) • 7.84 kB
JSON
{
"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"
}