List my shared spaces
list_spaces · Reads only
The shared spaces this person is in (groups and projects with other people), each with its description and picture, the names its members show there, how many items of each kind it holds, unread (items other members added since this person last marked it seen) and last_activity_at. A space holds only what members put there; nobody, and no agent, can read another member’s private Trillion through it.
It takes no inputs.
Example
Open a shared space
open_space · Reads only
One shared space: its description and picture, its members by the name each shows there (never a contact), how many items of each kind it holds, unread and last_activity_at, and the agents members’ AIs put to work there.
Inputs
Example
Start a shared space
create_membership · Changes things
Starts a shared space with this person as its first member and owner: a group, project, event, community or one-to-one (label). Every one is a shared space (list_spaces, share_to_space, add_to_space, hand_off_in_space); events take starts_at and ends_at; size_limit caps members. Invite people into a group or project with request_introduction and its membership_id. A community is joined by its own rules instead (anyone may join with join_community when its join rules let them, and it never shares anyone’s contact); it starts with the community label’s starting configuration, and config replaces any of its keys (title comes from title). Its posts are the space’s messages.
Inputs
Example
Read a shared space
read_space · Reads only
Items in a shared space, newest first: each with kind, title, body, what it is about, and its provenance (made in the space, shared from a member’s private Trillion, or brought in from a chat archive; by which member; when). Filter by kind; pass next_before as before for older items.
Inputs
Example
Add to a shared space
add_to_space · Changes things
Adds items made in the space itself, seen by every current member: a message, a shared pursuit, a decision the group made, a note, or any other kind, in your words (kind is any short word). about links other items of the same space by item_id. Say what you will add and get the person’s approval first when it speaks for them.
Inputs
Example
Share one record into a space
share_to_space · Changes things
Shares one record from this person’s private Trillion into a space they are in, and nothing else: record_id is one pursuit id, decision case_id or message id, file is one file’s name or identity, or tool is one of their own saved tools’ id (its descriptor and file texts are copied, so another member’s AI can keep its own copy with save_tool). Only the fields meant for others are copied (a decision leaves behind the pursuits it was weighed against); a file’s bytes stay with the person and members read them through the space. Sharing the same record again updates the copy. Only share what the person asked to share.
Inputs
Example
Withdraw from a space
withdraw_from_space · Changes things and can remove them
Withdraws an item this person put in a space: its words are erased for everyone, and a marker that they withdrew it stays.
Inputs
Example
Read a shared file
read_shared_file · Reads only
Where to read the bytes of a file shared into a space (item_id of a file item): a short-lived address. It stops working if the member who shared it withdraws it.
Inputs
Example
Mark a space seen
mark_space_seen · Changes things
Marks everything in a space as seen by this person, after they (or you, for them) have read it: its unread count starts again from now.
Inputs
Example
Describe a space and set its picture
describe_space · Changes things
Sets what a space is about and its picture, seen by every member: description is a few plain sentences, picture is one of this person’s own picture files (its name or identity), shared into the space so members see it. null clears either. Needs the private reach to take a picture from their files.
Inputs
Example
Read a space’s picture
read_space_picture · Reads only
Where to read the bytes of a space’s picture: a short-lived address, for members only.
Inputs
Example
Set my name in a space
name_in_space · Changes things
Sets the name this person shows to the other members of one space.
Inputs
Example
Make an invite link to a space
make_space_invite · Changes things
Makes a one-time invite link to a space, for someone who has no Trillion network listing: whoever opens it signed in to Trillion sees the space’s name and joins. It works once, lasts days (7 unless you say, at most 30), and stops working if revoked or if this person leaves. Give the link only to the person it is for.
Inputs
Example
List my invite links to a space
list_space_invites · Reads only
The invite links this person made for a space, each open, used, revoked or expired.
Inputs
Example
Revoke an invite link
revoke_space_invite · Changes things and can remove them
Revokes an invite link this person made (invite_id from make_space_invite or list_space_invites), so it no longer lets anyone in.
Inputs
Example
Join a space with an invite link
join_space · Changes things
Joins a shared space with an invite link someone gave this person (the whole link, or its code). Only when the person asked to join.
Inputs
Example
Leave a group, event or introduction
leave_membership · Changes things and can remove them
Leaves a one-to-one, group, project or event. From then on no member can read this person’s contact through it, and this person cannot read theirs or its shared space. What they shared into the space while a member stays there; nothing else of theirs is copied.
Inputs
Example
Read who may do what in a space
read_space_rules · Reads only
Who may do what in one shared space: its rules, each with id, effect (allow or deny), says (what it means), who, actions and when (further conditions, a rule tree over facts), what each covers, the facts, kinds of who and actions a rule can name, the members a rule can name (member_id, name, member_type), and may_change (whether this person may replace them). Every space starts with rules that let its members read, write, share, invite and hand work, let whoever put something there take it back, and let whoever started it change the rules. Changes nothing.
Inputs
Example
Change who may do what in a space
set_space_rules · Changes things and can remove them
Replaces who may do what in one shared space, for a person its rules let change them (at first, whoever started it). Send the whole list, read_space_rules first and change it: each rule is { id, effect: “allow” or “deny”, says: what it means in plain words, refuses?: the words a deny says to the person it stops, who?: { kind: “anyone” } or { kind: “any_member” } or { kind: “anyone_with_link” } or { kind: “member_type”, member_type } or { kind: “person”, person: a member_id from read_space_rules }, actions?: [action ids] (every action when left out), when?: { kind: “group”, combinator: “and” or “or”, rules: [conditions or groups] } }, a condition being { kind: “rule”, field: one of the facts, operator: “is_any_of” or “is_none_of”, params: { values: […] } } (is_member, is_owner, holds_link, made_it, maker_is_member and is_community are true or false; action, member_type and person are ids). A rule holds when its who, actions and when all hold. A deny that holds wins; otherwise an allow that holds lets the person act; when none holds they are refused. Who may change the rules is the action change_rules in the same list, and a list that would stop this person changing them again is refused. rules null puts back the rules every space starts with. Every member sees the new rules; say what will change and get the person’s approval first.
Inputs
Example
Give a member a type in a space
set_member_type · Changes things
Gives a member of one shared space another member type (member_id and the type ids from read_space_rules members and member_types), for a person the space’s rules let give people their type (at first, its owner). A member’s type is what the space’s rules name in who: { kind: “member_type” }. A change that would leave nobody able to change who may do what is refused.
Inputs
Example
Add a member type to a space
add_member_type · Changes things
Adds a member type of the space’s own to one shared space, by its name (for example “Editor”), for a person its rules let change who may do what. It is offered with the space’s starting types wherever a type is chosen, and rules can name it by the id read_space_rules returns.
Inputs
Example
Remove a member type from a space
remove_member_type · Changes things and can remove them
Removes a member type a shared space added itself, while nobody holds it and no rule names it.
Inputs
Example
Hide or show a thing in a space
hide_in_space · Changes things
Hides one thing in a shared space from everyone who may not hide or show it (they see only that it is hidden and by whom), or shows it again with hidden false. Its words stay. Allowed when the space’s rules let this person hide or show that thing (each thing read with read_space says so in may.hide_item).
Inputs
Example