Team File

A team, as read from its file: its name and ID, its members by ID, the folder they share, the agents of other accounts it lets on, and the opinions its members share beneath their own (link_agent_team::Team).

Where it's kept

~/.lnk/teams/<team>.toml, named after the team, made and changed by lnk agent team. Its file holds no name of an agent's, owner, teams, [harness] or extends.

What it holds

Its id and name, its members, the folder they share and any of the opinion sections of the agent spec, which its members share.

id = "t4m9q2x7k1ab"
name = "research"

[member.scout]
id = "a1b2c3d4e5f6"
purpose = "finds sources"

[member.writer]
id = "g7h8j9k0m1n2"
purpose = "drafts the report"

[files]
shared = "~/Link/Teams/research/Shared"

[turns]
rounds = 12

[member.<name>]

Each member by its name in the file, with its agent's id and a purpose of one line: what it's for on the team, for people and its teammates (link_agent_team::Member). An unknown key is refused.

[files] shared

The folder its members share, an absolute path or under ~, ~ made the home folder; lnk agent team create makes ~/Link/Teams/<team>/Shared. Left out, the team has no folder.

What each member reaches

What each own member reaches of the folder is in its own sandbox file (Configuration).

Another account's agent

On a cloud that hosts agents of many accounts, the team's owner names another account's agent twice, each checked against the other: in [access] member and in its [member.<name>].

id = "t4m9q2x7k1ab"
name = "design"

[member.lead]
id = "a1b2c3d4e5f6"

[member.reviewer]
id = "k3m4n5p6q7r8"
owner = "acct-0b7c5e2d4f6a8b9c0d1e2f3a4b5c6d7e"
purpose = "reviews drafts"
read = ["."]

[access]
member = ["agent:acct-0b7c5e2d4f6a8b9c0d1e2f3a4b5c6d7e/k3m4n5p6q7r8"]

[access] member

It holds agent:<account>/<agent id>, IAM's one list of who outside may be on it (Who May Talk to It).

Its [member.<name>]

The same agent's id and owner (the account), its purpose, and what of the folder it reaches at most, write and read as [teams.<team>] names them. The team's owner decides that, since the files are theirs.

What's refused

A member with an owner that [access] member doesn't name, an entry there that no member has, and write or read on the owner's own agent are each refused.

Its own account's yes

It's on the team only once its own account joins as well: that yes is the other account's, never in this file.

Checked reference

The field names below come from link_agent_spec::parse_team (TeamHead). Optional values remain unset until the feature resolves its environment or inherited settings. The list covers the team head; shared opinion tables use the Agent Spec.

root: access, files, id, member, name, version
access: member, message
files: shared
member.*: id, owner, purpose, read, write