@asermax/pi-tentacles 1.1.0 → 1.2.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 +2 -2
- package/extension/index.js +14 -2
- package/package.json +1 -1
- package/skills/tentacles/SKILL.md +9 -0
- package/tentacles-helper +9 -3
package/README.md
CHANGED
|
@@ -29,10 +29,10 @@ The helper reads these where it runs, on your machine. On pi, set them in pi's s
|
|
|
29
29
|
| `TENTACLES_API_KEY` | the API key | required |
|
|
30
30
|
| `TENTACLES_HELPER` | the helper's path | the bundled helper |
|
|
31
31
|
| `TENTACLES_SESSION_PROVIDER` | the model provider | `cloudflare` |
|
|
32
|
-
| `TENTACLES_SESSION_MODEL` | the model | `glm-5.
|
|
32
|
+
| `TENTACLES_SESSION_MODEL` | the model | `glm-5.3` |
|
|
33
33
|
| `TENTACLES_SESSION_EFFORT` | the effort level | `max` |
|
|
34
34
|
| `TENTACLES_WORKSPACE_IMAGE` | the workspace image | `default` |
|
|
35
|
-
| `TENTACLES_WORKSPACE_SIZE` | the workspace container's instance type | `
|
|
35
|
+
| `TENTACLES_WORKSPACE_SIZE` | the workspace container's instance type | `standard-2` |
|
|
36
36
|
| `TENTACLES_WORKSPACE_LIFETIME` | the workspace's inactivity time, in minutes | `15` |
|
|
37
37
|
|
|
38
38
|
A setting the agent passes to `spawn` wins over its variable.
|
package/extension/index.js
CHANGED
|
@@ -15382,7 +15382,13 @@ var SessionStatuses = {
|
|
|
15382
15382
|
var SessionStatus = Enum(SessionStatuses);
|
|
15383
15383
|
var Question = Struct({
|
|
15384
15384
|
id: QuestionId,
|
|
15385
|
-
text: String$1
|
|
15385
|
+
text: String$1,
|
|
15386
|
+
repositoryCheck: Union([
|
|
15387
|
+
TaggedStruct("NoRepository", {}),
|
|
15388
|
+
TaggedStruct("Stopped", {}),
|
|
15389
|
+
TaggedStruct("Clean", {}),
|
|
15390
|
+
TaggedStruct("CheckFailed", { output: String$1 })
|
|
15391
|
+
]).pipe(toTaggedUnion("_tag"))
|
|
15386
15392
|
});
|
|
15387
15393
|
var SessionDetails = Struct({
|
|
15388
15394
|
settings: Settings,
|
|
@@ -17323,7 +17329,13 @@ var entryText = type().pipe(tagsExhaustive({
|
|
|
17323
17329
|
toolResult: (entry) => entry.output,
|
|
17324
17330
|
subagentResult: (entry) => entry.text
|
|
17325
17331
|
}));
|
|
17326
|
-
var
|
|
17332
|
+
var repositoryCheckText = type().pipe(tagsExhaustive({
|
|
17333
|
+
NoRepository: () => "NoRepository",
|
|
17334
|
+
Stopped: () => "Stopped",
|
|
17335
|
+
Clean: () => "Clean",
|
|
17336
|
+
CheckFailed: ({ output }) => output === "" ? "CheckFailed" : `CheckFailed\n${output}`
|
|
17337
|
+
}));
|
|
17338
|
+
var questionWake = (session, question) => `${agentOf(session)} asks (question ${question.id}):\n${question.text}\n\nRepository check: ${repositoryCheckText(question.repositoryCheck)}\n\nAnswer it with the answer tool, passing session ${session.sessionId} and question ${question.id}.`;
|
|
17327
17339
|
var finishWake = (session, lastEntry) => lastEntry == null ? `${agentOf(session)} finished. Read its last message with the messages tool.` : `${agentOf(session)} finished. Its last message:\n${entryText(lastEntry)}`;
|
|
17328
17340
|
var failureWake = (session, failure) => `${agentOf(session)} failed: ${failure}`;
|
|
17329
17341
|
// src/core/controller.ts
|
package/package.json
CHANGED
|
@@ -46,6 +46,15 @@ You are woken when a remote agent stops. The wake carries the agent's last messa
|
|
|
46
46
|
|
|
47
47
|
A remote agent asks with its question tool and waits for the answer. Answer with `answer`, passing the question's id. Answer it yourself when you can; when the decision is the human's, ask them and answer once they reply. A prompt you send while a question waits does not answer the question. The agent receives the prompt after the question is answered.
|
|
48
48
|
|
|
49
|
+
Every question comes with a repository check, which tells you whether the remote agent's work is known to be persisted:
|
|
50
|
+
|
|
51
|
+
- `Clean`: the work is committed and pushed. The question can wait any length of time.
|
|
52
|
+
- `Stopped`: the agent's workspace was not running, so it had nothing pending. The question can wait any length of time.
|
|
53
|
+
- `CheckFailed`: tentacles could not check the workspace, so the agent's work may exist only on the container's disk and is lost when the container stops. The check comes with what the git commands printed, which shows why it failed and is empty when the workspace ran neither command.
|
|
54
|
+
- `NoRepository`: the session's settings name no repository, so tentacles manages none and checked nothing.
|
|
55
|
+
|
|
56
|
+
A remote agent that has uncommitted changes or unpushed commits cannot ask: its question tool refuses until it commits and pushes.
|
|
57
|
+
|
|
49
58
|
## Prompt
|
|
50
59
|
|
|
51
60
|
`prompt` sends a follow-up or a steer. A follow-up waits for the current run to end; a steer reaches the agent at its next step. Prompting a closed session reopens it.
|
package/tentacles-helper
CHANGED
|
@@ -26247,7 +26247,13 @@ var SessionStatuses = {
|
|
|
26247
26247
|
var SessionStatus = Enum(SessionStatuses);
|
|
26248
26248
|
var Question = Struct({
|
|
26249
26249
|
id: QuestionId,
|
|
26250
|
-
text: String$2
|
|
26250
|
+
text: String$2,
|
|
26251
|
+
repositoryCheck: Union([
|
|
26252
|
+
TaggedStruct("NoRepository", {}),
|
|
26253
|
+
TaggedStruct("Stopped", {}),
|
|
26254
|
+
TaggedStruct("Clean", {}),
|
|
26255
|
+
TaggedStruct("CheckFailed", { output: String$2 })
|
|
26256
|
+
]).pipe(toTaggedUnion("_tag"))
|
|
26251
26257
|
});
|
|
26252
26258
|
var SessionDetails = Struct({
|
|
26253
26259
|
settings: Settings,
|
|
@@ -30191,10 +30197,10 @@ var ConnectionConfig = all({
|
|
|
30191
30197
|
/** The settings a spawn leaves out. */
|
|
30192
30198
|
var SettingsDefaults = all({
|
|
30193
30199
|
provider: String$1("TENTACLES_SESSION_PROVIDER").pipe(withDefault("cloudflare")),
|
|
30194
|
-
model: String$1("TENTACLES_SESSION_MODEL").pipe(withDefault("glm-5.
|
|
30200
|
+
model: String$1("TENTACLES_SESSION_MODEL").pipe(withDefault("glm-5.3")),
|
|
30195
30201
|
effort: String$1("TENTACLES_SESSION_EFFORT").pipe(withDefault("max")),
|
|
30196
30202
|
image: String$1("TENTACLES_WORKSPACE_IMAGE").pipe(withDefault("default")),
|
|
30197
|
-
size: String$1("TENTACLES_WORKSPACE_SIZE").pipe(withDefault("
|
|
30203
|
+
size: String$1("TENTACLES_WORKSPACE_SIZE").pipe(withDefault("standard-2")),
|
|
30198
30204
|
lifetime: Int("TENTACLES_WORKSPACE_LIFETIME").pipe(withDefault(15))
|
|
30199
30205
|
});
|
|
30200
30206
|
// src/helper/client.ts
|