The CLI's facts in memory, notes_search, note_manage, skills_list, skill_view and skill_manage are `variables` now, filled with the CLI's own values (src/tool/spec-vars.ts): every description and parameter list the CLI sends is word for word what 1.1.0 said, except note and document ids, which are strings on both sides (a number is still taken). Descriptions are filled by the prompt texts' rules, parameter descriptions too. `narrow` says what a project offers of a shared tool's parameters. Memory's changes are one pure function (applyOps). Conformance: fill, narrow, memory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
456 lines
9.4 KiB
JSON
456 lines
9.4 KiB
JSON
{
|
|
"about": "A shared tool's parameters as one project offers them (`narrow`, the tool's `narrow.<project>`): a project may offer a subset and nothing else — `drop` removes optional properties, `enum` keeps some of a property's values. A path names a property; `a.b` is b inside a, `a[].b` is b inside a's array items. Never adds, never retypes. Refused, with `error`: dropping a required property (`required`), a path that is not there (`unknown`), values that are not all among the property's own (`not_subset`). LLeMbas: services/harness_spec.py narrow; CLI: harness.ts narrowParameters.",
|
|
"cases": [
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {},
|
|
"expect": {
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"drop": [
|
|
"scope"
|
|
]
|
|
},
|
|
"expect": {
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"enum": {
|
|
"action": [
|
|
"create",
|
|
"delete"
|
|
]
|
|
}
|
|
},
|
|
"expect": {
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"operations": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"patch",
|
|
"write_file",
|
|
"delete"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"file_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"operations"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"drop": [
|
|
"operations[].file_path"
|
|
],
|
|
"enum": {
|
|
"operations[].action": [
|
|
"create",
|
|
"patch",
|
|
"delete"
|
|
]
|
|
}
|
|
},
|
|
"expect": {
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"operations": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"patch",
|
|
"delete"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"operations"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"drop": [
|
|
"action"
|
|
]
|
|
},
|
|
"expect": {
|
|
"error": "required"
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"drop": [
|
|
"nope"
|
|
]
|
|
},
|
|
"expect": {
|
|
"error": "unknown"
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"operations": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"patch",
|
|
"write_file",
|
|
"delete"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"file_path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"name"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"operations"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"drop": [
|
|
"operations[].nope"
|
|
]
|
|
},
|
|
"expect": {
|
|
"error": "unknown"
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"enum": {
|
|
"action": [
|
|
"create",
|
|
"rename"
|
|
]
|
|
}
|
|
},
|
|
"expect": {
|
|
"error": "not_subset"
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"edit",
|
|
"delete"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"global"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"action"
|
|
]
|
|
},
|
|
"narrow": {
|
|
"enum": {
|
|
"id": [
|
|
"a"
|
|
]
|
|
}
|
|
},
|
|
"expect": {
|
|
"error": "not_subset"
|
|
}
|
|
}
|
|
]
|
|
}
|