very-happy-cli 0.2.126 → 0.2.128
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/dist/{AcpBackend-C9eu6CDu.cjs → AcpBackend-BYU6J2n0.cjs} +2 -2
- package/dist/{AcpBackend-BzGpBAZ0.mjs → AcpBackend-D7987ody.mjs} +2 -2
- package/dist/{AcpSessionManager-B223yT78.mjs → AcpSessionManager-BwrjVZyn.mjs} +1 -1
- package/dist/{AcpSessionManager-DQ1e_0gc.cjs → AcpSessionManager-artXJgqb.cjs} +1 -1
- package/dist/{agentGuidance-Tm8Z5HYp.cjs → agentGuidance-B1xYgHx6.cjs} +63 -33
- package/dist/{agentGuidance-BR0OFumQ.mjs → agentGuidance-BPGPaNlo.mjs} +62 -35
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-Bjd1nG0P.mjs → config-DSBE0Az0.mjs} +4 -4
- package/dist/{config-C0mofvCH.cjs → config-Dmkzs3o4.cjs} +4 -4
- package/dist/{index-BP56asuS.mjs → index-35FahgEU.mjs} +4 -4
- package/dist/{index-HW-KdG6W.cjs → index-CJmXLSQc.cjs} +4 -4
- package/dist/{index-D4eCRu9x.mjs → index-CfM6ewd8.mjs} +249 -27
- package/dist/{index-Cw9Zj1Zr.cjs → index-D_YVlpsW.cjs} +254 -30
- package/dist/{index-CV6sAa4a.mjs → index-m0Dnccc_.mjs} +13 -9
- package/dist/{index-CMbKpntk.cjs → index-vyTJsT_R.cjs} +13 -9
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-CNp1LExn.cjs → installTerminalHooks-C1zwiJJ2.cjs} +4 -4
- package/dist/{installTerminalHooks-D-CNSalI.mjs → installTerminalHooks-ClrFe2fA.mjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.d.cts +1 -0
- package/dist/lib.d.mts +1 -0
- package/dist/lib.mjs +2 -2
- package/dist/{limits-DlbYYtOw.mjs → limits-BNTLh2lw.mjs} +9 -9
- package/dist/{limits-DG1OQnCb.cjs → limits-CrwtFbi8.cjs} +7 -7
- package/dist/{mcp-BtZoIIIM.cjs → mcp-Bc_mmJt8.cjs} +4 -4
- package/dist/{mcp-D3oV_dH-.mjs → mcp-BsohER5A.mjs} +4 -4
- package/dist/{runGemini-BfCSOPL1.cjs → runGemini-B2GesRWm.cjs} +6 -6
- package/dist/{runGemini-BJ8bU1pP.mjs → runGemini-B9S85Vms.mjs} +6 -6
- package/dist/{runOpenClaw-DTgOpJnO.mjs → runOpenClaw-Byhq-B1y.mjs} +5 -5
- package/dist/{runOpenClaw-CBlHXEAT.cjs → runOpenClaw-DCK-R8qe.cjs} +5 -5
- package/dist/{send-CDK1bZFj.cjs → send-CPdT1nOg.cjs} +4 -4
- package/dist/{send-9duZlpGX.mjs → send-DQS1zNWp.mjs} +4 -4
- package/dist/{sessions-CNkLCorF.cjs → sessions-DC0IKaD9.cjs} +4 -4
- package/dist/{sessions-jAFOkKvW.mjs → sessions-DIOdWnPe.mjs} +4 -4
- package/dist/{spawn-BG5oHi_f.mjs → spawn-DV4pIAHZ.mjs} +4 -4
- package/dist/{spawn-J-A5WGZ7.cjs → spawn-DrnCW2QK.cjs} +4 -4
- package/dist/{teams-MgWeyutG.cjs → teams-CwXEJs9I.cjs} +41 -6
- package/dist/{teams-Cuqsk7Ty.mjs → teams-DlTHOiCk.mjs} +38 -3
- package/dist/todo-BwXURAbQ.mjs +128 -0
- package/dist/todo-DrME15xq.cjs +132 -0
- package/dist/{types-n_VWu9qe.mjs → types-CFs8FmiY.mjs} +318 -6
- package/dist/{types-P5deH8Ls.cjs → types-DfatCoQL.cjs} +327 -12
- package/package.json +7 -7
- package/dist/resources-CVl7NdOB.cjs +0 -83
- package/dist/resources-D-mn7ptO.mjs +0 -80
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var node_child_process = require('node:child_process');
|
|
4
4
|
var sdk = require('@agentclientprotocol/sdk');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var persistence = require('./limits-
|
|
7
|
-
var api = require('./types-
|
|
6
|
+
var persistence = require('./limits-CrwtFbi8.cjs');
|
|
7
|
+
var api = require('./types-DfatCoQL.cjs');
|
|
8
8
|
|
|
9
9
|
const DEFAULT_TIMEOUTS = {
|
|
10
10
|
/** Default initialization timeout: 60 seconds */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
-
import { l as logger, p as packageJson } from './limits-
|
|
5
|
-
import {
|
|
4
|
+
import { l as logger, p as packageJson } from './limits-BNTLh2lw.mjs';
|
|
5
|
+
import { d as contentLogMetadata, e as errorLogMetadata, f as delay } from './types-CFs8FmiY.mjs';
|
|
6
6
|
|
|
7
7
|
const DEFAULT_TIMEOUTS = {
|
|
8
8
|
/** Default initialization timeout: 60 seconds */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createId } from '@paralleldrive/cuid2';
|
|
2
|
-
import { s as streamKeyOf, c as createEnvelope } from './types-
|
|
2
|
+
import { s as streamKeyOf, c as createEnvelope } from './types-CFs8FmiY.mjs';
|
|
3
3
|
|
|
4
4
|
function turnOptions(turnId, time) {
|
|
5
5
|
return turnId ? { turn: turnId, time } : { time };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var z = require('zod');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
|
-
var persistence = require('./limits-
|
|
5
|
+
var persistence = require('./limits-CrwtFbi8.cjs');
|
|
6
6
|
var promises = require('node:fs/promises');
|
|
7
7
|
var node_fs = require('node:fs');
|
|
8
8
|
var path = require('node:path');
|
|
@@ -81,40 +81,66 @@ async function teamRequest(path, method, token, scoped, body) {
|
|
|
81
81
|
throw new Error("Teams returned an invalid response");
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
class TeamConnectionPreflightError extends Error {
|
|
85
|
+
}
|
|
86
|
+
const initializationLocks = /* @__PURE__ */ new Map();
|
|
87
|
+
async function serializeInitialization(path, work) {
|
|
88
|
+
const previous = initializationLocks.get(path) ?? Promise.resolve();
|
|
89
|
+
const next = previous.catch(() => {
|
|
90
|
+
}).then(work);
|
|
91
|
+
initializationLocks.set(path, next);
|
|
92
|
+
try {
|
|
93
|
+
return await next;
|
|
94
|
+
} finally {
|
|
95
|
+
if (initializationLocks.get(path) === next) initializationLocks.delete(path);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
84
98
|
function createTeamsClient(sessionId) {
|
|
85
99
|
const scopePath = () => teamScopePath(sessionId ?? process.env.HAPPY_SESSION_ID);
|
|
86
100
|
return {
|
|
87
|
-
async initialize(input) {
|
|
101
|
+
async initialize(input, options) {
|
|
88
102
|
const path = scopePath();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
teamId =
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
103
|
+
return serializeInitialization(path, async () => {
|
|
104
|
+
const priorScope = await readTeamScope(path);
|
|
105
|
+
if (priorScope && !options?.resumeAdoption) throw new Error("This session already has a team scope; use scoped team tools");
|
|
106
|
+
if (process.env.VH_TEAM_SCOPE_FILE) throw new Error("Assigned team scope is missing or already managed; ask the owner to restore it");
|
|
107
|
+
const sid = sessionId ?? process.env.HAPPY_SESSION_ID;
|
|
108
|
+
if (!sid) throw new Error("A managed session identity is required");
|
|
109
|
+
const machineId = (await persistence.readSettings()).machineId;
|
|
110
|
+
if (!machineId) throw new TeamConnectionPreflightError("Connect this machine to Very Happy before joining a team");
|
|
111
|
+
if (input.machineId && input.machineId !== machineId) throw new TeamConnectionPreflightError("Teams must use this session\u2019s local machine");
|
|
112
|
+
const persisted = persistence.readPersistedSessions()[sid];
|
|
113
|
+
if (!persisted || persisted.metadata.machineId !== machineId) throw new TeamConnectionPreflightError("Team identity must be a persisted session on this machine");
|
|
114
|
+
const credentials = await persistence.readCredentialsForConfiguredRelay();
|
|
115
|
+
if (!credentials) throw new TeamConnectionPreflightError("Sign in to Very Happy before creating or joining a team");
|
|
116
|
+
if (priorScope && !options?.expectedTeamId) throw new Error("This session already belongs to another team scope");
|
|
117
|
+
let teamId = input.teamId ?? options?.expectedTeamId;
|
|
118
|
+
if (!teamId) {
|
|
119
|
+
const created = await teamRequest("/v1/teams", "POST", credentials.token, false, { name: input.name, machineId, requestId: input.requestId });
|
|
120
|
+
teamId = created.team.id;
|
|
121
|
+
} else {
|
|
122
|
+
const existing = await teamRequest(`/v1/teams/${encodeURIComponent(teamId)}`, "GET", credentials.token, false);
|
|
123
|
+
if (existing.team?.machineId !== machineId) throw new TeamConnectionPreflightError("Team belongs to another machine");
|
|
124
|
+
}
|
|
125
|
+
if (options?.onTeamResolved) await options.onTeamResolved(teamId);
|
|
126
|
+
if (priorScope) {
|
|
127
|
+
if (priorScope.teamId !== teamId || priorScope.taskId) throw new Error("This session already belongs to another team scope");
|
|
128
|
+
const inspected = await teamRequest(`/v1/teams/${encodeURIComponent(teamId)}/agent`, "GET", priorScope.scopeToken, true);
|
|
129
|
+
const bot = inspected.team?.bots?.find((candidate) => candidate.id === priorScope.botId);
|
|
130
|
+
if (!bot?.root || bot.managed || bot.sessionId !== sid) throw new Error("Existing scope is not this session\u2019s root identity");
|
|
131
|
+
return { team: inspected.team, botId: priorScope.botId };
|
|
132
|
+
}
|
|
133
|
+
const result = await teamRequest(
|
|
134
|
+
`/v1/teams/${encodeURIComponent(teamId)}/actions`,
|
|
135
|
+
"POST",
|
|
136
|
+
credentials.token,
|
|
137
|
+
false,
|
|
138
|
+
{ requestId: input.requestId, action: { type: "join", name: input.name, sessionId: sid, ...input.botId ? { botId: input.botId } : {} } }
|
|
139
|
+
);
|
|
140
|
+
if (!result.credential?.token || !result.credential?.botId) throw new Error("Team join did not issue a credential");
|
|
141
|
+
await writeTeamScope(path, { serverUrl: persistence.configuration.serverUrl, teamId, botId: result.credential.botId, scopeToken: result.credential.token });
|
|
142
|
+
return { team: result.team, botId: result.credential.botId };
|
|
143
|
+
});
|
|
118
144
|
},
|
|
119
145
|
async inspect() {
|
|
120
146
|
const scope = await readTeamScope(scopePath());
|
|
@@ -163,7 +189,7 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
|
|
|
163
189
|
`team_${name}`,
|
|
164
190
|
description,
|
|
165
191
|
{ requestId, ...fields },
|
|
166
|
-
({ requestId: key, ...args }) => client.action({ type: name, ...args }, key)
|
|
192
|
+
({ requestId: key, ...args }) => client.action({ type: name, ...args, ...name === "delegate" && args.directory === void 0 ? { directory: process.cwd() } : {} }, key)
|
|
167
193
|
);
|
|
168
194
|
action("delegate", "Delegate a goal with acceptance criteria. Use parentTaskId for subdelegation. Existing assigneeBotId or a managed worker may execute it.", {
|
|
169
195
|
goal: text,
|
|
@@ -172,7 +198,8 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
|
|
|
172
198
|
assigneeBotId: id.optional(),
|
|
173
199
|
botName: id.optional(),
|
|
174
200
|
directory: z.z.string().min(1).optional(),
|
|
175
|
-
assistant: z.z.enum(["claude", "codex", "pi-acp"]).optional()
|
|
201
|
+
assistant: z.z.enum(["claude", "codex", "pi-acp"]).optional(),
|
|
202
|
+
model: z.z.string().trim().min(1).max(256).optional()
|
|
176
203
|
});
|
|
177
204
|
action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
|
|
178
205
|
action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.z.number().int().positive(), result: text });
|
|
@@ -231,7 +258,10 @@ exports.REPORT_PROGRESS_TOOL_DESCRIPTION = REPORT_PROGRESS_TOOL_DESCRIPTION;
|
|
|
231
258
|
exports.REPORT_PROGRESS_TOOL_NAME = REPORT_PROGRESS_TOOL_NAME;
|
|
232
259
|
exports.REPORT_PROGRESS_TOOL_TITLE = REPORT_PROGRESS_TOOL_TITLE;
|
|
233
260
|
exports.TEAM_TOOL_NAMES = TEAM_TOOL_NAMES;
|
|
261
|
+
exports.TeamConnectionPreflightError = TeamConnectionPreflightError;
|
|
234
262
|
exports.createTeamsClient = createTeamsClient;
|
|
263
|
+
exports.readTeamScope = readTeamScope;
|
|
235
264
|
exports.registerTeamsTools = registerTeamsTools;
|
|
236
265
|
exports.teamRequest = teamRequest;
|
|
266
|
+
exports.teamScopePath = teamScopePath;
|
|
237
267
|
exports.trimIdent = trimIdent;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { n as normalizeHttpEndpoint, c as configuration,
|
|
3
|
+
import { n as normalizeHttpEndpoint, c as configuration, g as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-BNTLh2lw.mjs';
|
|
4
4
|
import { open, mkdir, rename, unlink } from 'node:fs/promises';
|
|
5
5
|
import { constants } from 'node:fs';
|
|
6
|
-
import {
|
|
6
|
+
import { isAbsolute, join, dirname } from 'node:path';
|
|
7
7
|
|
|
8
8
|
const TeamScopeSchema = z.object({
|
|
9
9
|
serverUrl: z.string(),
|
|
@@ -79,40 +79,66 @@ async function teamRequest(path, method, token, scoped, body) {
|
|
|
79
79
|
throw new Error("Teams returned an invalid response");
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
class TeamConnectionPreflightError extends Error {
|
|
83
|
+
}
|
|
84
|
+
const initializationLocks = /* @__PURE__ */ new Map();
|
|
85
|
+
async function serializeInitialization(path, work) {
|
|
86
|
+
const previous = initializationLocks.get(path) ?? Promise.resolve();
|
|
87
|
+
const next = previous.catch(() => {
|
|
88
|
+
}).then(work);
|
|
89
|
+
initializationLocks.set(path, next);
|
|
90
|
+
try {
|
|
91
|
+
return await next;
|
|
92
|
+
} finally {
|
|
93
|
+
if (initializationLocks.get(path) === next) initializationLocks.delete(path);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
82
96
|
function createTeamsClient(sessionId) {
|
|
83
97
|
const scopePath = () => teamScopePath(sessionId ?? process.env.HAPPY_SESSION_ID);
|
|
84
98
|
return {
|
|
85
|
-
async initialize(input) {
|
|
99
|
+
async initialize(input, options) {
|
|
86
100
|
const path = scopePath();
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
teamId =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
101
|
+
return serializeInitialization(path, async () => {
|
|
102
|
+
const priorScope = await readTeamScope(path);
|
|
103
|
+
if (priorScope && !options?.resumeAdoption) throw new Error("This session already has a team scope; use scoped team tools");
|
|
104
|
+
if (process.env.VH_TEAM_SCOPE_FILE) throw new Error("Assigned team scope is missing or already managed; ask the owner to restore it");
|
|
105
|
+
const sid = sessionId ?? process.env.HAPPY_SESSION_ID;
|
|
106
|
+
if (!sid) throw new Error("A managed session identity is required");
|
|
107
|
+
const machineId = (await readSettings()).machineId;
|
|
108
|
+
if (!machineId) throw new TeamConnectionPreflightError("Connect this machine to Very Happy before joining a team");
|
|
109
|
+
if (input.machineId && input.machineId !== machineId) throw new TeamConnectionPreflightError("Teams must use this session\u2019s local machine");
|
|
110
|
+
const persisted = readPersistedSessions()[sid];
|
|
111
|
+
if (!persisted || persisted.metadata.machineId !== machineId) throw new TeamConnectionPreflightError("Team identity must be a persisted session on this machine");
|
|
112
|
+
const credentials = await readCredentialsForConfiguredRelay();
|
|
113
|
+
if (!credentials) throw new TeamConnectionPreflightError("Sign in to Very Happy before creating or joining a team");
|
|
114
|
+
if (priorScope && !options?.expectedTeamId) throw new Error("This session already belongs to another team scope");
|
|
115
|
+
let teamId = input.teamId ?? options?.expectedTeamId;
|
|
116
|
+
if (!teamId) {
|
|
117
|
+
const created = await teamRequest("/v1/teams", "POST", credentials.token, false, { name: input.name, machineId, requestId: input.requestId });
|
|
118
|
+
teamId = created.team.id;
|
|
119
|
+
} else {
|
|
120
|
+
const existing = await teamRequest(`/v1/teams/${encodeURIComponent(teamId)}`, "GET", credentials.token, false);
|
|
121
|
+
if (existing.team?.machineId !== machineId) throw new TeamConnectionPreflightError("Team belongs to another machine");
|
|
122
|
+
}
|
|
123
|
+
if (options?.onTeamResolved) await options.onTeamResolved(teamId);
|
|
124
|
+
if (priorScope) {
|
|
125
|
+
if (priorScope.teamId !== teamId || priorScope.taskId) throw new Error("This session already belongs to another team scope");
|
|
126
|
+
const inspected = await teamRequest(`/v1/teams/${encodeURIComponent(teamId)}/agent`, "GET", priorScope.scopeToken, true);
|
|
127
|
+
const bot = inspected.team?.bots?.find((candidate) => candidate.id === priorScope.botId);
|
|
128
|
+
if (!bot?.root || bot.managed || bot.sessionId !== sid) throw new Error("Existing scope is not this session\u2019s root identity");
|
|
129
|
+
return { team: inspected.team, botId: priorScope.botId };
|
|
130
|
+
}
|
|
131
|
+
const result = await teamRequest(
|
|
132
|
+
`/v1/teams/${encodeURIComponent(teamId)}/actions`,
|
|
133
|
+
"POST",
|
|
134
|
+
credentials.token,
|
|
135
|
+
false,
|
|
136
|
+
{ requestId: input.requestId, action: { type: "join", name: input.name, sessionId: sid, ...input.botId ? { botId: input.botId } : {} } }
|
|
137
|
+
);
|
|
138
|
+
if (!result.credential?.token || !result.credential?.botId) throw new Error("Team join did not issue a credential");
|
|
139
|
+
await writeTeamScope(path, { serverUrl: configuration.serverUrl, teamId, botId: result.credential.botId, scopeToken: result.credential.token });
|
|
140
|
+
return { team: result.team, botId: result.credential.botId };
|
|
141
|
+
});
|
|
116
142
|
},
|
|
117
143
|
async inspect() {
|
|
118
144
|
const scope = await readTeamScope(scopePath());
|
|
@@ -161,7 +187,7 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
|
|
|
161
187
|
`team_${name}`,
|
|
162
188
|
description,
|
|
163
189
|
{ requestId, ...fields },
|
|
164
|
-
({ requestId: key, ...args }) => client.action({ type: name, ...args }, key)
|
|
190
|
+
({ requestId: key, ...args }) => client.action({ type: name, ...args, ...name === "delegate" && args.directory === void 0 ? { directory: process.cwd() } : {} }, key)
|
|
165
191
|
);
|
|
166
192
|
action("delegate", "Delegate a goal with acceptance criteria. Use parentTaskId for subdelegation. Existing assigneeBotId or a managed worker may execute it.", {
|
|
167
193
|
goal: text,
|
|
@@ -170,7 +196,8 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
|
|
|
170
196
|
assigneeBotId: id.optional(),
|
|
171
197
|
botName: id.optional(),
|
|
172
198
|
directory: z.string().min(1).optional(),
|
|
173
|
-
assistant: z.enum(["claude", "codex", "pi-acp"]).optional()
|
|
199
|
+
assistant: z.enum(["claude", "codex", "pi-acp"]).optional(),
|
|
200
|
+
model: z.string().trim().min(1).max(256).optional()
|
|
174
201
|
});
|
|
175
202
|
action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
|
|
176
203
|
action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.number().int().positive(), result: text });
|
|
@@ -221,4 +248,4 @@ const REPORT_PROGRESS_TOOL_NAME = "report_progress";
|
|
|
221
248
|
const REPORT_PROGRESS_TOOL_TITLE = "Report Progress to the Task Board";
|
|
222
249
|
const REPORT_PROGRESS_TOOL_DESCRIPTION = `Report what you are doing to the user's task board, so they can see the state of this session at a glance without reading the transcript. Call it at meaningful milestones only: when you start substantive work, when you get blocked and need the user, when something is ready for their review, and when you are done. Do NOT call it after every tool call or every file edit \u2014 it is a status line, not a log. Set attention to "blocked" when you cannot proceed without the user, "review" when you want them to look at something, and "none" for ordinary progress. Keep progress to one short line describing the current state (the user reads it on a card).`;
|
|
223
250
|
|
|
224
|
-
export { AGENT_GUIDANCE as A, PREVIEW_TOOL_NAME as P, REPORT_PROGRESS_TOOL_NAME as R,
|
|
251
|
+
export { AGENT_GUIDANCE as A, PREVIEW_TOOL_NAME as P, REPORT_PROGRESS_TOOL_NAME as R, TeamConnectionPreflightError as T, PREVIEW_TOOL_TITLE as a, PREVIEW_TOOL_DESCRIPTION as b, readTeamScope as c, teamRequest as d, createTeamsClient as e, trimIdent as f, TEAM_TOOL_NAMES as g, REPORT_PROGRESS_TOOL_TITLE as h, REPORT_PROGRESS_TOOL_DESCRIPTION as i, registerTeamsTools as r, teamScopePath as t };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var agentGuidance = require('../agentGuidance-
|
|
3
|
+
var agentGuidance = require('../agentGuidance-B1xYgHx6.cjs');
|
|
4
4
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
5
5
|
var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
|
|
6
6
|
var index_js = require('@modelcontextprotocol/sdk/client/index.js');
|
|
7
7
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
|
|
8
8
|
var z = require('zod');
|
|
9
|
-
var persistence = require('../limits-
|
|
9
|
+
var persistence = require('../limits-CrwtFbi8.cjs');
|
|
10
10
|
require('node:crypto');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('node:fs');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-
|
|
1
|
+
import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-BPGPaNlo.mjs';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
5
5
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-
|
|
7
|
+
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-BNTLh2lw.mjs';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:fs';
|
|
@@ -2,8 +2,8 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { l as logger } from './limits-
|
|
6
|
-
import { j as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-
|
|
5
|
+
import { l as logger } from './limits-BNTLh2lw.mjs';
|
|
6
|
+
import { j as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-CfM6ewd8.mjs';
|
|
7
7
|
import 'node:fs/promises';
|
|
8
8
|
import 'node:fs';
|
|
9
9
|
import 'node:os';
|
|
@@ -13,7 +13,7 @@ import 'node:crypto';
|
|
|
13
13
|
import 'tweetnacl';
|
|
14
14
|
import 'chalk';
|
|
15
15
|
import 'node:util';
|
|
16
|
-
import './types-
|
|
16
|
+
import './types-CFs8FmiY.mjs';
|
|
17
17
|
import 'axios';
|
|
18
18
|
import 'node:events';
|
|
19
19
|
import 'socket.io-client';
|
|
@@ -28,7 +28,7 @@ import 'node-pty';
|
|
|
28
28
|
import 'node:readline';
|
|
29
29
|
import '@anthropic-ai/sandbox-runtime';
|
|
30
30
|
import 'expo-server-sdk';
|
|
31
|
-
import './agentGuidance-
|
|
31
|
+
import './agentGuidance-BPGPaNlo.mjs';
|
|
32
32
|
import 'ink';
|
|
33
33
|
import 'react';
|
|
34
34
|
import '@anthropic-ai/claude-agent-sdk';
|
|
@@ -4,8 +4,8 @@ var fs = require('fs');
|
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
|
-
var persistence = require('./limits-
|
|
8
|
-
var index = require('./index-
|
|
7
|
+
var persistence = require('./limits-CrwtFbi8.cjs');
|
|
8
|
+
var index = require('./index-D_YVlpsW.cjs');
|
|
9
9
|
require('node:fs/promises');
|
|
10
10
|
require('node:fs');
|
|
11
11
|
require('node:os');
|
|
@@ -15,7 +15,7 @@ require('node:crypto');
|
|
|
15
15
|
require('tweetnacl');
|
|
16
16
|
require('chalk');
|
|
17
17
|
require('node:util');
|
|
18
|
-
require('./types-
|
|
18
|
+
require('./types-DfatCoQL.cjs');
|
|
19
19
|
require('axios');
|
|
20
20
|
require('node:events');
|
|
21
21
|
require('socket.io-client');
|
|
@@ -30,7 +30,7 @@ require('node-pty');
|
|
|
30
30
|
require('node:readline');
|
|
31
31
|
require('@anthropic-ai/sandbox-runtime');
|
|
32
32
|
require('expo-server-sdk');
|
|
33
|
-
require('./agentGuidance-
|
|
33
|
+
require('./agentGuidance-B1xYgHx6.cjs');
|
|
34
34
|
require('ink');
|
|
35
35
|
require('react');
|
|
36
36
|
require('@anthropic-ai/claude-agent-sdk');
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { q as query } from './index-
|
|
1
|
+
import { q as query } from './index-CfM6ewd8.mjs';
|
|
2
2
|
export { AbortError } from '@anthropic-ai/claude-agent-sdk';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import 'node:os';
|
|
5
5
|
import 'node:crypto';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-CFs8FmiY.mjs';
|
|
7
7
|
import 'axios';
|
|
8
|
-
import './limits-
|
|
8
|
+
import './limits-BNTLh2lw.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:path';
|
|
@@ -29,7 +29,7 @@ import 'fs';
|
|
|
29
29
|
import 'node:readline';
|
|
30
30
|
import '@anthropic-ai/sandbox-runtime';
|
|
31
31
|
import 'expo-server-sdk';
|
|
32
|
-
import './agentGuidance-
|
|
32
|
+
import './agentGuidance-BPGPaNlo.mjs';
|
|
33
33
|
import 'ink';
|
|
34
34
|
import 'react';
|
|
35
35
|
import 'ps-list';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-D_YVlpsW.cjs');
|
|
4
4
|
var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
|
|
5
5
|
require('chalk');
|
|
6
6
|
require('node:os');
|
|
7
7
|
require('node:crypto');
|
|
8
|
-
require('./types-
|
|
8
|
+
require('./types-DfatCoQL.cjs');
|
|
9
9
|
require('axios');
|
|
10
|
-
require('./limits-
|
|
10
|
+
require('./limits-CrwtFbi8.cjs');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('node:fs');
|
|
13
13
|
require('node:path');
|
|
@@ -31,7 +31,7 @@ require('fs');
|
|
|
31
31
|
require('node:readline');
|
|
32
32
|
require('@anthropic-ai/sandbox-runtime');
|
|
33
33
|
require('expo-server-sdk');
|
|
34
|
-
require('./agentGuidance-
|
|
34
|
+
require('./agentGuidance-B1xYgHx6.cjs');
|
|
35
35
|
require('ink');
|
|
36
36
|
require('react');
|
|
37
37
|
require('ps-list');
|