@fungi.computer/shiitake-extensions 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -13
- package/dist/almanac/contract.d.ts +94 -0
- package/dist/almanac/contract.js +71 -5
- package/dist/goal/client.d.ts +5 -2
- package/dist/goal/client.js +66 -72
- package/dist/goal/contract.d.ts +181 -64
- package/dist/goal/contract.js +102 -12
- package/dist/goal/host.js +188 -113
- package/dist/home/contract.d.ts +18 -0
- package/dist/home/contract.js +24 -3
- package/dist/home/host.d.ts +3 -0
- package/dist/home/host.js +1 -2
- package/dist/home/routing.js +13 -24
- package/dist/internal/history.d.ts +16 -0
- package/dist/internal/history.js +8 -0
- package/dist/loop/client.d.ts +1 -1
- package/dist/loop/client.js +28 -34
- package/dist/loop/contract.d.ts +113 -84
- package/dist/loop/contract.js +77 -9
- package/dist/loop/host.d.ts +1 -0
- package/dist/loop/host.js +17 -30
- package/dist/plan/client.d.ts +1 -1
- package/dist/plan/contract.d.ts +33 -0
- package/dist/plan/contract.js +28 -3
- package/dist/plan/host.js +12 -7
- package/dist/question/client.d.ts +1 -1
- package/dist/question/contract.d.ts +158 -0
- package/dist/question/contract.js +92 -7
- package/dist/question/host.js +34 -20
- package/dist/roster/conversation-agents.d.ts +31 -0
- package/dist/roster/conversation-agents.js +114 -0
- package/dist/roster.js +1 -0
- package/dist/skills/host.d.ts +1 -0
- package/dist/skills/host.js +22 -17
- package/dist/skills/source.d.ts +34 -0
- package/dist/subagents/client.d.ts +1 -1
- package/dist/subagents/client.js +43 -12
- package/dist/subagents/contract.d.ts +46 -8
- package/dist/subagents/contract.js +38 -8
- package/dist/subagents/host.d.ts +20 -8
- package/dist/subagents/host.js +58 -12
- package/docs/api/README.md +35 -0
- package/docs/api/almanac/contract.md +90 -0
- package/docs/api/almanac/host.md +19 -0
- package/docs/api/goal/client.md +26 -0
- package/docs/api/goal/contract.md +247 -0
- package/docs/api/goal/host.md +29 -0
- package/docs/api/home/contract.md +58 -0
- package/docs/api/home/host.md +55 -0
- package/docs/api/loop/client.md +25 -0
- package/docs/api/loop/contract.md +159 -0
- package/docs/api/loop/host.md +30 -0
- package/docs/api/plan/client.md +26 -0
- package/docs/api/plan/contract.md +163 -0
- package/docs/api/plan/host.md +19 -0
- package/docs/api/question/client.md +25 -0
- package/docs/api/question/contract.md +377 -0
- package/docs/api/question/host.md +19 -0
- package/docs/api/roster/conversation-agents.md +80 -0
- package/docs/api/roster.md +40 -0
- package/docs/api/skills/host.md +39 -0
- package/docs/api/skills/source.md +104 -0
- package/docs/api/subagents/client.md +26 -0
- package/docs/api/subagents/contract.md +131 -0
- package/docs/api/subagents/host.md +115 -0
- package/package.json +14 -8
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / roster/conversation-agents
|
|
8
|
+
|
|
9
|
+
# roster/conversation-agents
|
|
10
|
+
|
|
11
|
+
## Functions
|
|
12
|
+
|
|
13
|
+
### assertOrdinaryAgentCreation()
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
function assertOrdinaryAgentCreation(input): void;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Host-pack creation admission; attachments/model selection retain their own
|
|
20
|
+
owners.
|
|
21
|
+
|
|
22
|
+
#### Parameters
|
|
23
|
+
|
|
24
|
+
| Parameter | Type |
|
|
25
|
+
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
+
| `input` | `Readonly`\<\{ `requestId`: `string`; `name?`: `string`; `model?`: \{ `providerId`: `string`; `modelId`: `string`; `reasoning?`: `"minimal"` \| `"low"` \| `"medium"` \| `"high"` \| `"xhigh"` \| `"max"`; \}; `extensions?`: readonly `string`[]; \}\> |
|
|
27
|
+
|
|
28
|
+
#### Returns
|
|
29
|
+
|
|
30
|
+
`void`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### createConversationAgents()
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
function createConversationAgents(storage): object;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
This host's own record of the Agents each conversation created or sent accepted
|
|
41
|
+
work to, written as its Agent-control directory accepts them (Wiki:
|
|
42
|
+
agent-runtime-tools-and-clients, read-only sub-agent view). It feeds the footer
|
|
43
|
+
only; it owns no relationship and grants nothing.
|
|
44
|
+
|
|
45
|
+
#### Parameters
|
|
46
|
+
|
|
47
|
+
| Parameter | Type |
|
|
48
|
+
| --------- | --------------------- |
|
|
49
|
+
| `storage` | `WatchdogSqliteOwner` |
|
|
50
|
+
|
|
51
|
+
#### Returns
|
|
52
|
+
|
|
53
|
+
| Name | Type | Description |
|
|
54
|
+
| ------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
55
|
+
| `recording()` | (`parentSessionId`, `directory`) => `AgentControlDirectory` | Bind acceptance recording to this conversation's existing directory. One conversation's directory: its accepted creates and sends are recorded. |
|
|
56
|
+
| `control()` | (`directoryFor`) => `CapabilitySource` | Agent-control tools bound to the conversation that acquires them. |
|
|
57
|
+
| `source()` | (`directory`) => [`SubagentSource`](../subagents/host.md#subagentsource) | The footer rows for one conversation; archived and unknown Agents leave it. |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### oysterAgentExtensions()
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
function oysterAgentExtensions(source): object;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Both hosts compose the ordinary roster and its read-only created-Agent footer.
|
|
68
|
+
|
|
69
|
+
#### Parameters
|
|
70
|
+
|
|
71
|
+
| Parameter | Type |
|
|
72
|
+
| --------- | ------------------------------------------------------- |
|
|
73
|
+
| `source` | [`SubagentSource`](../subagents/host.md#subagentsource) |
|
|
74
|
+
|
|
75
|
+
#### Returns
|
|
76
|
+
|
|
77
|
+
| Name | Type | Description |
|
|
78
|
+
| -------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
79
|
+
| `roster` | `RosteredExtensionV0`[] | Ordinary extensions plus the read-only created-Agent footer. |
|
|
80
|
+
| `grants` | `Readonly`\<\{ `id`: `string` & `Brand`\<`"ExtensionId"`\>; `capabilities`: readonly `ExtensionCapabilityV0`[]; `grantKey?`: `string`; \}\>[] | Host grants corresponding to the composed extension roster. |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](README.md) / roster
|
|
8
|
+
|
|
9
|
+
# roster
|
|
10
|
+
|
|
11
|
+
## Variables
|
|
12
|
+
|
|
13
|
+
### botanicalAgentExtensions
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
const botanicalAgentExtensions: ExtensionRosterV0;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Botanical's product roster with explicit grants. Hub and Local pass this same
|
|
20
|
+
value; a stranger host passes its own (or an empty) roster.
|
|
21
|
+
|
|
22
|
+
## Functions
|
|
23
|
+
|
|
24
|
+
### botanicalExtensionsWithSkills()
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
function botanicalExtensionsWithSkills(source): ExtensionRosterV0;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
A host with a SkillSource grants read-only skill discovery for its own runs.
|
|
31
|
+
|
|
32
|
+
#### Parameters
|
|
33
|
+
|
|
34
|
+
| Parameter | Type |
|
|
35
|
+
| --------- | --------------------------------------------- |
|
|
36
|
+
| `source` | [`SkillSource`](skills/source.md#skillsource) |
|
|
37
|
+
|
|
38
|
+
#### Returns
|
|
39
|
+
|
|
40
|
+
`ExtensionRosterV0`
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / skills/host
|
|
8
|
+
|
|
9
|
+
# skills/host
|
|
10
|
+
|
|
11
|
+
## Variables
|
|
12
|
+
|
|
13
|
+
### skillsGrant
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
const skillsGrant: ExtensionGrantV0;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Host admission for skill discovery prompts, load tools and human controls.
|
|
20
|
+
|
|
21
|
+
## Functions
|
|
22
|
+
|
|
23
|
+
### skillsExtension()
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
function skillsExtension(__namedParameters): RosteredExtensionV0;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Skills use only the generic prompt and run-tools doors; the host owns files.
|
|
30
|
+
|
|
31
|
+
#### Parameters
|
|
32
|
+
|
|
33
|
+
| Parameter | Type |
|
|
34
|
+
| ------------------- | --------------------------------------------------------------------- |
|
|
35
|
+
| `__namedParameters` | `Readonly`\<\{ `source`: [`SkillSource`](source.md#skillsource); \}\> |
|
|
36
|
+
|
|
37
|
+
#### Returns
|
|
38
|
+
|
|
39
|
+
`RosteredExtensionV0`
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / skills/source
|
|
8
|
+
|
|
9
|
+
# skills/source
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### SkillOrigin
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type SkillOrigin =
|
|
17
|
+
| Readonly<{
|
|
18
|
+
kind: "project" | "personal";
|
|
19
|
+
}>
|
|
20
|
+
| Readonly<{
|
|
21
|
+
kind: "extension";
|
|
22
|
+
extensionId: string;
|
|
23
|
+
}>;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Where a skill folder came from: the work itself, the person, or an installed
|
|
27
|
+
extension.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### SkillDescription
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
type SkillDescription = Readonly<{
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
location: string;
|
|
38
|
+
origin: SkillOrigin;
|
|
39
|
+
displayLocation: string;
|
|
40
|
+
}>;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Host-owned discovery metadata; bodies are loaded only through skill.load.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### SkillDiagnostic
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
type SkillDiagnostic = Readonly<{
|
|
51
|
+
path: string;
|
|
52
|
+
reason:
|
|
53
|
+
| "invalid"
|
|
54
|
+
| "collision"
|
|
55
|
+
| "unavailable"
|
|
56
|
+
| "bound"
|
|
57
|
+
| "warning"
|
|
58
|
+
| "skipped"
|
|
59
|
+
| "empty";
|
|
60
|
+
message: string;
|
|
61
|
+
cause: unknown;
|
|
62
|
+
}>;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Safe discovery explanation, with the original cause kept separately for redacted
|
|
66
|
+
logs.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### SkillCatalog
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
type SkillCatalog = Readonly<{
|
|
74
|
+
skills: readonly SkillDescription[];
|
|
75
|
+
diagnostics: readonly SkillDiagnostic[];
|
|
76
|
+
}>;
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Discovered skill descriptions and diagnostics from the same scan.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### SkillSource
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
type SkillSource = Readonly<{
|
|
87
|
+
catalog: (signal) => Promise<SkillCatalog>;
|
|
88
|
+
read: (
|
|
89
|
+
name,
|
|
90
|
+
file,
|
|
91
|
+
signal,
|
|
92
|
+
) => Promise<
|
|
93
|
+
Readonly<{
|
|
94
|
+
name: string;
|
|
95
|
+
file: string;
|
|
96
|
+
content: string;
|
|
97
|
+
baseDirectory: string;
|
|
98
|
+
supportingFiles: readonly string[];
|
|
99
|
+
}>
|
|
100
|
+
>;
|
|
101
|
+
}>;
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Read-only host port. The host owns frontmatter, discovery and containment.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / subagents/client
|
|
8
|
+
|
|
9
|
+
# subagents/client
|
|
10
|
+
|
|
11
|
+
## Variables
|
|
12
|
+
|
|
13
|
+
### default
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
default: Readonly<{
|
|
17
|
+
protocol: "shiitake.client/v1";
|
|
18
|
+
id: string & Brand<"ExtensionId">;
|
|
19
|
+
promptPresentation?: "footer";
|
|
20
|
+
attach?: (context) => Effect<void, Error, Scope>;
|
|
21
|
+
contribute?: (slot) => object;
|
|
22
|
+
}>;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
One footer row per sub-agent; opening a row shows its conversation beside this
|
|
26
|
+
one.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / subagents/contract
|
|
8
|
+
|
|
9
|
+
# subagents/contract
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### SubagentState
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type SubagentState = typeof SubagentState.Type;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Display state of one created Agent's conversation.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
### Subagent
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
type Subagent = typeof Subagent.Type;
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Decoded footer row for a created Agent.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### SubagentsProjection
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
type SubagentsProjection = typeof SubagentsProjection.Type;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Decoded list and expansion state projected into the footer.
|
|
40
|
+
|
|
41
|
+
## Variables
|
|
42
|
+
|
|
43
|
+
### maximumSubagents
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
const maximumSubagents: 16 = 16;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The most Agents one conversation's footer lists; the rest are counted.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### SubagentState
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
const SubagentState: Literals<
|
|
57
|
+
readonly ["working", "waiting", "idle", "failed", "unavailable"]
|
|
58
|
+
>;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
What the human sees for one ordinary created Agent. `waiting` is any open
|
|
62
|
+
attention on its conversation (a question or a tool approval); `unavailable`
|
|
63
|
+
means its status could not be read, and is never shown as idle.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### Subagent
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
const Subagent: Struct<{
|
|
71
|
+
agentId: String;
|
|
72
|
+
name: String;
|
|
73
|
+
sessionId: NullOr<String>;
|
|
74
|
+
state: Literals<
|
|
75
|
+
readonly ["working", "waiting", "idle", "failed", "unavailable"]
|
|
76
|
+
>;
|
|
77
|
+
attention: optionalKey<String>;
|
|
78
|
+
}>;
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
A footer row for an ordinary Agent created by this Agent, never merely sent
|
|
82
|
+
work.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### SubagentsProjection
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
const SubagentsProjection: Struct<{
|
|
90
|
+
agents: $Array<
|
|
91
|
+
Struct<{
|
|
92
|
+
agentId: String;
|
|
93
|
+
name: String;
|
|
94
|
+
sessionId: NullOr<String>;
|
|
95
|
+
state: Literals<
|
|
96
|
+
readonly ["working", "waiting", "idle", "failed", "unavailable"]
|
|
97
|
+
>;
|
|
98
|
+
attention: optionalKey<String>;
|
|
99
|
+
}>
|
|
100
|
+
>;
|
|
101
|
+
more: Int;
|
|
102
|
+
expanded: Boolean;
|
|
103
|
+
}>;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This Agent's created Agents and how many are not listed. `expanded` is whether
|
|
107
|
+
the footer lists each one; a person toggles it with `/agents`, and a collapsed
|
|
108
|
+
footer keeps one summary row.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### subagentsContract
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
const subagentsContract: object;
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Created-Agent footer control and its visible projection.
|
|
119
|
+
|
|
120
|
+
#### Type Declaration
|
|
121
|
+
|
|
122
|
+
| Name | Type | Default value | Description |
|
|
123
|
+
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ---------------------------------------------------------------------- |
|
|
124
|
+
| <a id="property-id"></a> `id` | `string` & `Brand`\<`"ExtensionId"`\> | - | Stable extension identity. |
|
|
125
|
+
| <a id="property-commands"></a> `commands` | `object` | - | Human footer controls. |
|
|
126
|
+
| `commands.agents` | `object` | - | Toggle the created-Agent footer between expanded and summarized views. |
|
|
127
|
+
| `commands.agents.scope` | `"session"` | `"session"` | The Session owns its footer view. |
|
|
128
|
+
| `commands.agents.input` | `Struct`\<\{ \}\> | - | No additional arguments are required. |
|
|
129
|
+
| `commands.agents.output` | `declare`\<`WhistleCatalogStepV1`, `WhistleCatalogStepV1`\> | `CatalogStep` | Return the server-owned human control step. |
|
|
130
|
+
| <a id="property-projection"></a> `projection` | `object` | - | Footer rows and expansion state. |
|
|
131
|
+
| `projection.schema` | `Struct`\<\{ `agents`: `$Array`\<`Struct`\<\{ `agentId`: `String`; `name`: `String`; `sessionId`: `NullOr`\<`String`\>; `state`: `Literals`\<readonly \[`"working"`, `"waiting"`, `"idle"`, `"failed"`, `"unavailable"`\]\>; `attention`: `optionalKey`\<`String`\>; \}\>\>; `more`: `Int`; `expanded`: `Boolean`; \}\> | `SubagentsProjection` | Decoder for the projected footer. |
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/shiitake-extensions**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/shiitake-extensions](../README.md) / subagents/host
|
|
8
|
+
|
|
9
|
+
# subagents/host
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### SubagentRecord
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type SubagentRecord = Readonly<{
|
|
17
|
+
agentId: string;
|
|
18
|
+
name: string;
|
|
19
|
+
sessionId: string | null;
|
|
20
|
+
}>;
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A footer row for an ordinary Agent created by the current Agent.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
### SubagentAgent
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
type SubagentAgent = Readonly<{
|
|
31
|
+
listSessions: ShiitakeAgent["listSessions"];
|
|
32
|
+
session: (sessionId) => Pick<ShiitakeSession, "read">;
|
|
33
|
+
}>;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The two owner reads a status needs from one child Agent.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
### SubagentSource
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
type SubagentSource = Readonly<{
|
|
44
|
+
read: (
|
|
45
|
+
sessionId,
|
|
46
|
+
limit,
|
|
47
|
+
) => Promise<
|
|
48
|
+
Readonly<{
|
|
49
|
+
agents: readonly SubagentRecord[];
|
|
50
|
+
more: number;
|
|
51
|
+
}>
|
|
52
|
+
>;
|
|
53
|
+
open: (
|
|
54
|
+
agentId,
|
|
55
|
+
signal,
|
|
56
|
+
) => Promise<
|
|
57
|
+
Readonly<{
|
|
58
|
+
agent: SubagentAgent;
|
|
59
|
+
release: () => Promise<void>;
|
|
60
|
+
}>
|
|
61
|
+
>;
|
|
62
|
+
}>;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The host's read-only facts. `read` returns ordinary created Agents, at most
|
|
66
|
+
`limit`, with a count of the rest; `open` is the host's existing per-operation
|
|
67
|
+
Agent access (an `AgentControlDirectory`'s `open` fits), and releasing it never
|
|
68
|
+
stops the Agent's work.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### SubagentTiming
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
type SubagentTiming = Readonly<{
|
|
76
|
+
refreshMs: number;
|
|
77
|
+
pollMs: number;
|
|
78
|
+
interestMs: number;
|
|
79
|
+
}>;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Private resource ceilings; none of them is product policy.
|
|
83
|
+
|
|
84
|
+
## Variables
|
|
85
|
+
|
|
86
|
+
### subagentsGrant
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
const subagentsGrant: ExtensionGrantV0;
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Host admission for the read-only created-Agent footer and human toggle.
|
|
93
|
+
|
|
94
|
+
## Functions
|
|
95
|
+
|
|
96
|
+
### subagentsExtension()
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
function subagentsExtension(options): RosteredExtensionV0;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The read-only footer: ordinary Agents created by this Agent, one row each, with
|
|
103
|
+
their live status. It owns neither relationships nor durable state; the Agent
|
|
104
|
+
directory owns immutable creation attribution. Its one command, `/agents`, only
|
|
105
|
+
expands or collapses the footer rows.
|
|
106
|
+
|
|
107
|
+
#### Parameters
|
|
108
|
+
|
|
109
|
+
| Parameter | Type |
|
|
110
|
+
| --------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
111
|
+
| `options` | `Readonly`\<\{ `source`: [`SubagentSource`](#subagentsource); `timing?`: [`SubagentTiming`](#subagenttiming); \}\> |
|
|
112
|
+
|
|
113
|
+
#### Returns
|
|
114
|
+
|
|
115
|
+
`RosteredExtensionV0`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fungi.computer/shiitake-extensions",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"author": "Levi <levi@technomancy.dev>",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Botanical's product Shiitake extensions: goal, loop and Almanac on the generic extension surface",
|
|
@@ -46,6 +46,10 @@
|
|
|
46
46
|
"types": "./dist/roster.d.ts",
|
|
47
47
|
"import": "./dist/roster.js"
|
|
48
48
|
},
|
|
49
|
+
"./roster/conversation-agents": {
|
|
50
|
+
"types": "./dist/roster/conversation-agents.d.ts",
|
|
51
|
+
"import": "./dist/roster/conversation-agents.js"
|
|
52
|
+
},
|
|
49
53
|
"./plan": {
|
|
50
54
|
"types": "./dist/plan/contract.d.ts",
|
|
51
55
|
"import": "./dist/plan/contract.js"
|
|
@@ -97,20 +101,22 @@
|
|
|
97
101
|
},
|
|
98
102
|
"files": [
|
|
99
103
|
"dist",
|
|
104
|
+
"docs/api",
|
|
100
105
|
"README.md",
|
|
101
106
|
"LICENSE"
|
|
102
107
|
],
|
|
103
108
|
"dependencies": {
|
|
104
|
-
"@fungi.computer/almanac": "0.0
|
|
105
|
-
"@fungi.computer/cairn": "0.0
|
|
106
|
-
"@fungi.computer/knapsack": "0.0
|
|
107
|
-
"@fungi.computer/mycelium": "0.0
|
|
108
|
-
"@fungi.computer/shiitake": "0.
|
|
109
|
-
"@fungi.computer/
|
|
109
|
+
"@fungi.computer/almanac": "0.2.0",
|
|
110
|
+
"@fungi.computer/cairn": "0.1.0",
|
|
111
|
+
"@fungi.computer/knapsack": "0.2.0",
|
|
112
|
+
"@fungi.computer/mycelium": "0.2.0",
|
|
113
|
+
"@fungi.computer/shiitake": "0.3.0",
|
|
114
|
+
"@fungi.computer/watchdog": "0.1.0",
|
|
115
|
+
"@fungi.computer/whistle": "0.1.0",
|
|
110
116
|
"effect": "4.0.2",
|
|
111
117
|
"papaparse": "5.7.0",
|
|
112
118
|
"zod": "4.4.3",
|
|
113
|
-
"@fungi.computer/gills": "0.0
|
|
119
|
+
"@fungi.computer/gills": "0.2.0"
|
|
114
120
|
},
|
|
115
121
|
"license": "MIT",
|
|
116
122
|
"repository": {
|