happy-imou-cloud 2.1.32 → 2.1.34
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/{BaseReasoningProcessor-CfibmGoR.mjs → BaseReasoningProcessor-CxLnyixP.mjs} +2 -2
- package/dist/{BaseReasoningProcessor-CQQrYyo3.cjs → BaseReasoningProcessor-kN8gq-t4.cjs} +2 -2
- package/dist/{ProviderSelectionHandler-C1q60HP6.mjs → ProviderSelectionHandler-DuJGNviz.mjs} +2 -2
- package/dist/{ProviderSelectionHandler-D9Bd_S25.cjs → ProviderSelectionHandler-oEEvSQ0O.cjs} +2 -2
- package/dist/{api-DIFbsA6t.mjs → api-B3Zl8oHG.mjs} +105 -5
- package/dist/{api-DeDVledu.cjs → api-C94O6IB2.cjs} +106 -4
- package/dist/{command-Cl7kVs7K.cjs → command-96cX402J.cjs} +2 -2
- package/dist/{command-ZJ5yPOv4.mjs → command-CMZlS6zf.mjs} +2 -2
- package/dist/{index-CT1dgGsX.cjs → index-D4TuE2VS.cjs} +140 -37
- package/dist/{index-CFH8qcTw.mjs → index-sqm5plVs.mjs} +137 -34
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.d.cts +412 -0
- package/dist/lib.d.mts +412 -0
- package/dist/lib.mjs +1 -1
- package/dist/{registerKillSessionHandler-9O3r5bEa.cjs → registerKillSessionHandler-7bLVg5RG.cjs} +233 -11
- package/dist/{registerKillSessionHandler-DxpGgu6u.mjs → registerKillSessionHandler-Dmm6gsoz.mjs} +233 -11
- package/dist/{runClaude-BvRjHUgF.mjs → runClaude-BrvxWJ9-.mjs} +4 -4
- package/dist/{runClaude-BmW-_Yrl.cjs → runClaude-Dn1JJ8m9.cjs} +4 -4
- package/dist/{runCodex-dmjiaB1v.cjs → runCodex-Dc2Rqb8W.cjs} +5 -5
- package/dist/{runCodex-B-B9MfOf.mjs → runCodex-DfYO-7YG.mjs} +5 -5
- package/dist/{runGemini-B9W7nfow.mjs → runGemini-C1_AOBlU.mjs} +4 -4
- package/dist/{runGemini-CyERhKhw.cjs → runGemini-DQyuAba-.cjs} +4 -4
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as createSessionMetadata, p as publishSessionRegistration } from './index-
|
|
2
|
-
import { s as startOfflineReconnection, c as configuration, i as isAuthenticationRequiredError, l as logger } from './api-
|
|
1
|
+
import { a as createSessionMetadata, p as publishSessionRegistration } from './index-sqm5plVs.mjs';
|
|
2
|
+
import { s as startOfflineReconnection, c as configuration, i as isAuthenticationRequiredError, l as logger } from './api-B3Zl8oHG.mjs';
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
4
|
-
var persistence = require('./api-
|
|
3
|
+
var index = require('./index-D4TuE2VS.cjs');
|
|
4
|
+
var persistence = require('./api-C94O6IB2.cjs');
|
|
5
5
|
var node_events = require('node:events');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
|
package/dist/{ProviderSelectionHandler-C1q60HP6.mjs → ProviderSelectionHandler-DuJGNviz.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as logger } from './api-
|
|
2
|
-
import { g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, a as INTERACTION_TIMED_OUT_ERROR } from './registerKillSessionHandler-
|
|
1
|
+
import { l as logger } from './api-B3Zl8oHG.mjs';
|
|
2
|
+
import { g as getPendingInteractionTimeoutMs, I as INTERACTION_SUPERSEDED_ERROR, a as INTERACTION_TIMED_OUT_ERROR } from './registerKillSessionHandler-Dmm6gsoz.mjs';
|
|
3
3
|
|
|
4
4
|
async function runModeLoop(opts) {
|
|
5
5
|
let currentMode = opts.startingMode;
|
package/dist/{ProviderSelectionHandler-D9Bd_S25.cjs → ProviderSelectionHandler-oEEvSQ0O.cjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var persistence = require('./api-
|
|
4
|
-
var registerKillSessionHandler = require('./registerKillSessionHandler-
|
|
3
|
+
var persistence = require('./api-C94O6IB2.cjs');
|
|
4
|
+
var registerKillSessionHandler = require('./registerKillSessionHandler-7bLVg5RG.cjs');
|
|
5
5
|
|
|
6
6
|
async function runModeLoop(opts) {
|
|
7
7
|
let currentMode = opts.startingMode;
|
|
@@ -18,7 +18,7 @@ import { spawn } from 'node:child_process';
|
|
|
18
18
|
import { Expo } from 'expo-server-sdk';
|
|
19
19
|
|
|
20
20
|
var name = "happy-imou-cloud";
|
|
21
|
-
var version = "2.1.
|
|
21
|
+
var version = "2.1.34";
|
|
22
22
|
var description = "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI";
|
|
23
23
|
var author = "long.zhu";
|
|
24
24
|
var license = "MIT";
|
|
@@ -1195,6 +1195,7 @@ var persistence = /*#__PURE__*/Object.freeze({
|
|
|
1195
1195
|
const HAPPY_ORG_REPEAT_THRESHOLD = 3;
|
|
1196
1196
|
const HAPPY_ORG_TURN_REPORT_TAG = "HAPPY_TURN_REPORT";
|
|
1197
1197
|
const HAPPY_ORG_SUMMARY_MAX_LENGTH = 120;
|
|
1198
|
+
const HAPPY_ORG_REPLY_ACK_VERSION = "happy-org-1.7.7-reply-ack-v1";
|
|
1198
1199
|
const HappyOrgInterventionTypeSchema = z$1.enum([
|
|
1199
1200
|
"none",
|
|
1200
1201
|
"review_needed",
|
|
@@ -1211,6 +1212,24 @@ const HappyOrgAccessChannelStateSchema = z$1.enum([
|
|
|
1211
1212
|
"reattach_required",
|
|
1212
1213
|
"runtime_replaced"
|
|
1213
1214
|
]);
|
|
1215
|
+
const HappyOrgRouteTypeSchema = z$1.enum([
|
|
1216
|
+
"direct_reply",
|
|
1217
|
+
"version_planning_reply",
|
|
1218
|
+
"analysis_task",
|
|
1219
|
+
"implementation_task",
|
|
1220
|
+
"ack_plus_reply"
|
|
1221
|
+
]);
|
|
1222
|
+
const HappyOrgAckTypeSchema = z$1.enum([
|
|
1223
|
+
"none",
|
|
1224
|
+
"read_ack",
|
|
1225
|
+
"dispatch_ack",
|
|
1226
|
+
"route_ack",
|
|
1227
|
+
"progress_ack"
|
|
1228
|
+
]);
|
|
1229
|
+
const HappyOrgReplyModeSchema = z$1.enum([
|
|
1230
|
+
"reply-first",
|
|
1231
|
+
"analysis-first"
|
|
1232
|
+
]);
|
|
1214
1233
|
const HappyOrgTaskContextSchema = z$1.object({
|
|
1215
1234
|
taskId: z$1.string().min(1),
|
|
1216
1235
|
organizationId: z$1.string().min(1),
|
|
@@ -1229,10 +1248,20 @@ const HappyOrgTaskControlSchema = z$1.object({
|
|
|
1229
1248
|
});
|
|
1230
1249
|
const HappyOrgReplyContextSchema = z$1.object({
|
|
1231
1250
|
dispatchId: z$1.string().min(1),
|
|
1251
|
+
taskId: z$1.string().min(1).optional().nullable(),
|
|
1252
|
+
organizationId: z$1.string().min(1).optional().nullable(),
|
|
1232
1253
|
scope: z$1.string().min(1),
|
|
1233
1254
|
replyTo: z$1.string().min(1),
|
|
1255
|
+
memberAgentId: z$1.string().min(1).optional().nullable(),
|
|
1256
|
+
sessionId: z$1.string().min(1).optional().nullable(),
|
|
1234
1257
|
positionId: z$1.string().min(1).optional().nullable(),
|
|
1235
|
-
responsibilityId: z$1.string().min(1).optional().nullable()
|
|
1258
|
+
responsibilityId: z$1.string().min(1).optional().nullable(),
|
|
1259
|
+
routeType: HappyOrgRouteTypeSchema.optional().nullable(),
|
|
1260
|
+
ackType: HappyOrgAckTypeSchema.optional().nullable(),
|
|
1261
|
+
replyMode: HappyOrgReplyModeSchema.optional().nullable(),
|
|
1262
|
+
planIntent: z$1.string().min(1).optional().nullable(),
|
|
1263
|
+
routerReason: z$1.string().min(1).optional().nullable(),
|
|
1264
|
+
goldenRouteId: z$1.string().min(1).optional().nullable()
|
|
1236
1265
|
});
|
|
1237
1266
|
const HappyOrgDispatchBusinessAckStatusSchema = z$1.enum([
|
|
1238
1267
|
"accepted",
|
|
@@ -1241,11 +1270,24 @@ const HappyOrgDispatchBusinessAckStatusSchema = z$1.enum([
|
|
|
1241
1270
|
]);
|
|
1242
1271
|
const HappyOrgDispatchAckLedgerEntrySchema = z$1.object({
|
|
1243
1272
|
dispatchId: z$1.string().min(1),
|
|
1273
|
+
ackVersion: z$1.string().min(1).optional().nullable(),
|
|
1244
1274
|
scope: z$1.string().min(1),
|
|
1245
1275
|
taskAck: z$1.string().min(1),
|
|
1246
1276
|
readAck: z$1.literal("yes"),
|
|
1247
1277
|
status: HappyOrgDispatchBusinessAckStatusSchema,
|
|
1248
1278
|
note: z$1.string().nullable(),
|
|
1279
|
+
taskId: z$1.string().min(1).optional().nullable(),
|
|
1280
|
+
organizationId: z$1.string().min(1).optional().nullable(),
|
|
1281
|
+
memberAgentId: z$1.string().min(1).optional().nullable(),
|
|
1282
|
+
sessionId: z$1.string().min(1).optional().nullable(),
|
|
1283
|
+
positionId: z$1.string().min(1).optional().nullable(),
|
|
1284
|
+
responsibilityId: z$1.string().min(1).optional().nullable(),
|
|
1285
|
+
routeType: HappyOrgRouteTypeSchema.optional().nullable(),
|
|
1286
|
+
ackType: HappyOrgAckTypeSchema.optional().nullable(),
|
|
1287
|
+
replyMode: HappyOrgReplyModeSchema.optional().nullable(),
|
|
1288
|
+
planIntent: z$1.string().min(1).optional().nullable(),
|
|
1289
|
+
routerReason: z$1.string().min(1).optional().nullable(),
|
|
1290
|
+
goldenRouteId: z$1.string().min(1).optional().nullable(),
|
|
1249
1291
|
acknowledgedAt: z$1.number().int().nonnegative()
|
|
1250
1292
|
});
|
|
1251
1293
|
const HappyOrgSpecialistHomeIdentitySchema = z$1.object({
|
|
@@ -2102,6 +2144,37 @@ async function listPositionEnvelopes(rootPath) {
|
|
|
2102
2144
|
async function readResponsibilities(rootPath) {
|
|
2103
2145
|
return await readEnvelope(path.join(rootPath, "RESPONSIBILITIES.json"), ResponsibilityEnvelopeSchema);
|
|
2104
2146
|
}
|
|
2147
|
+
async function readHappyOrgDispatchTruthSnapshot(rootPath) {
|
|
2148
|
+
const [positions, responsibilities] = await Promise.all([
|
|
2149
|
+
listPositionEnvelopes(rootPath),
|
|
2150
|
+
readResponsibilities(rootPath)
|
|
2151
|
+
]);
|
|
2152
|
+
const normalizedPositions = positions.map((position) => ({
|
|
2153
|
+
positionId: position.value.positionId,
|
|
2154
|
+
slug: position.value.slug,
|
|
2155
|
+
responsibilityIds: [...position.value.responsibilityIds],
|
|
2156
|
+
agentId: position.value.agentId ?? null,
|
|
2157
|
+
occupancyStatus: normalizeOccupancyStatus(position.value.occupancyStatus)
|
|
2158
|
+
}));
|
|
2159
|
+
const normalizedResponsibilities = responsibilities?.value?.map((responsibility) => ({
|
|
2160
|
+
responsibilityId: responsibility.responsibilityId,
|
|
2161
|
+
positionId: responsibility.positionId,
|
|
2162
|
+
memberAgentId: responsibility.memberAgentId ?? null,
|
|
2163
|
+
status: responsibility.status
|
|
2164
|
+
})) ?? normalizedPositions.flatMap((position) => {
|
|
2165
|
+
const responsibilityId = position.responsibilityIds[0] ?? buildResponsibilityId(position.slug);
|
|
2166
|
+
return [{
|
|
2167
|
+
responsibilityId,
|
|
2168
|
+
positionId: position.positionId,
|
|
2169
|
+
memberAgentId: position.agentId,
|
|
2170
|
+
status: position.agentId ? position.occupancyStatus === "active" ? "in_progress" : "assigned" : "vacancy"
|
|
2171
|
+
}];
|
|
2172
|
+
});
|
|
2173
|
+
return {
|
|
2174
|
+
positions: normalizedPositions,
|
|
2175
|
+
responsibilities: normalizedResponsibilities
|
|
2176
|
+
};
|
|
2177
|
+
}
|
|
2105
2178
|
function mergeTaskEnvelope(taskBundle) {
|
|
2106
2179
|
const { task, workflow, result } = taskBundle;
|
|
2107
2180
|
return {
|
|
@@ -3884,9 +3957,13 @@ function parseHappyOrgFallbackEnvelope(rawEnvelope) {
|
|
|
3884
3957
|
replyTo,
|
|
3885
3958
|
organizationId: typeof parsed.organization_id === "string" ? parsed.organization_id.trim() : null,
|
|
3886
3959
|
memberAgentId: typeof parsed.member_agent_id === "string" ? parsed.member_agent_id.trim() : null,
|
|
3960
|
+
sessionId: typeof parsed.session_id === "string" ? parsed.session_id.trim() : null,
|
|
3887
3961
|
supervisorAgentId: typeof parsed.supervisor_agent_id === "string" ? parsed.supervisor_agent_id.trim() : null,
|
|
3888
3962
|
positionId: typeof parsed.position_id === "string" ? parsed.position_id.trim() : null,
|
|
3889
|
-
responsibilityId: typeof parsed.responsibility_id === "string" ? parsed.responsibility_id.trim() : null
|
|
3963
|
+
responsibilityId: typeof parsed.responsibility_id === "string" ? parsed.responsibility_id.trim() : null,
|
|
3964
|
+
routeType: parsed.route_type === "direct_reply" || parsed.route_type === "version_planning_reply" || parsed.route_type === "analysis_task" || parsed.route_type === "implementation_task" || parsed.route_type === "ack_plus_reply" ? parsed.route_type : null,
|
|
3965
|
+
ackType: parsed.ack_type === "none" || parsed.ack_type === "read_ack" || parsed.ack_type === "dispatch_ack" || parsed.ack_type === "route_ack" || parsed.ack_type === "progress_ack" ? parsed.ack_type : null,
|
|
3966
|
+
replyMode: parsed.reply_mode === "reply-first" || parsed.reply_mode === "analysis-first" ? parsed.reply_mode : null
|
|
3890
3967
|
};
|
|
3891
3968
|
} catch {
|
|
3892
3969
|
return null;
|
|
@@ -3910,8 +3987,15 @@ function buildHappyOrgFallbackUserMessage(rawEnvelope) {
|
|
|
3910
3987
|
} : {},
|
|
3911
3988
|
replyContext: {
|
|
3912
3989
|
dispatchId: envelope.dispatchId,
|
|
3990
|
+
taskId: envelope.taskId,
|
|
3991
|
+
organizationId: envelope.organizationId,
|
|
3913
3992
|
scope: envelope.scope,
|
|
3914
3993
|
replyTo: envelope.replyTo,
|
|
3994
|
+
memberAgentId: envelope.memberAgentId,
|
|
3995
|
+
sessionId: envelope.sessionId,
|
|
3996
|
+
routeType: envelope.routeType ?? "ack_plus_reply",
|
|
3997
|
+
ackType: envelope.ackType ?? "dispatch_ack",
|
|
3998
|
+
replyMode: envelope.replyMode ?? "reply-first",
|
|
3915
3999
|
...envelope.positionId ? { positionId: envelope.positionId } : {},
|
|
3916
4000
|
...envelope.responsibilityId ? { responsibilityId: envelope.responsibilityId } : {}
|
|
3917
4001
|
}
|
|
@@ -6132,6 +6216,15 @@ class ApiClient {
|
|
|
6132
6216
|
});
|
|
6133
6217
|
return response.data.frontDoor;
|
|
6134
6218
|
}
|
|
6219
|
+
async getOrganizationView(opts = {}) {
|
|
6220
|
+
const response = await this.request({
|
|
6221
|
+
method: "GET",
|
|
6222
|
+
url: `${configuration.serverUrl}/control/v1/views/organization`,
|
|
6223
|
+
headers: opts.organizationId ? { "x-happy-organization-id": opts.organizationId } : void 0,
|
|
6224
|
+
timeout: 5e3
|
|
6225
|
+
});
|
|
6226
|
+
return response.data.organization;
|
|
6227
|
+
}
|
|
6135
6228
|
async listOrganizationAgents(opts = {}) {
|
|
6136
6229
|
const response = await this.request({
|
|
6137
6230
|
method: "GET",
|
|
@@ -6154,7 +6247,14 @@ class ApiClient {
|
|
|
6154
6247
|
cross_scope_policy: "ask-first",
|
|
6155
6248
|
position_id: opts.positionId ?? null,
|
|
6156
6249
|
responsibility_id: opts.responsibilityId ?? null,
|
|
6157
|
-
note: opts.note ?? null
|
|
6250
|
+
note: opts.note ?? null,
|
|
6251
|
+
requested_member_agent_id: opts.requestedMemberAgentId ?? null,
|
|
6252
|
+
position_truth_agent_id: opts.positionTruthAgentId ?? null,
|
|
6253
|
+
responsibility_truth_member_agent_id: opts.responsibilityTruthMemberAgentId ?? null,
|
|
6254
|
+
live_binding_session_id: opts.liveBindingSessionId ?? null,
|
|
6255
|
+
runtime_session_id: opts.runtimeSessionId ?? null,
|
|
6256
|
+
validation_result: opts.validationResult ?? "shadow_pass",
|
|
6257
|
+
rejection_reason: opts.rejectionReason ?? null
|
|
6158
6258
|
},
|
|
6159
6259
|
headers: withLegacyControlAck({ "x-happy-organization-id": opts.organizationId }),
|
|
6160
6260
|
timeout: 1e4
|
|
@@ -6574,4 +6674,4 @@ var api = /*#__PURE__*/Object.freeze({
|
|
|
6574
6674
|
ApiClient: ApiClient
|
|
6575
6675
|
});
|
|
6576
6676
|
|
|
6577
|
-
export { ApiClient as A,
|
|
6677
|
+
export { ApiClient as A, clearDaemonState as B, packageJson as C, acquireDaemonLock as D, writeDaemonState as E, releaseDaemonLock as F, validateProfileForAgent as G, HeadTailPreviewBuffer as H, getProfileEnvironmentVariables as I, clearCredentials as J, clearMachineId as K, readHappyOrgDispatchTruthSnapshot as L, processHappyOrgRepoRequests as M, HappyOrgTurnReportSchema as N, recordHappyOrgTurnReport as O, MessageContentSchema as P, buildSocketAuth as Q, encrypt as R, getLatestDaemonLog as S, persistence as T, api as U, ApiSessionClient as a, connectionState as b, configuration as c, HAPPY_ORG_REPLY_ACK_VERSION as d, HAPPY_ORG_TURN_REPORT_TAG as e, HAPPY_ORG_SUMMARY_MAX_LENGTH as f, HAPPY_ORG_REPEAT_THRESHOLD as g, backoff as h, isAuthenticationRequiredError as i, delay as j, AsyncLock as k, logger as l, encodeBase64 as m, readCredentials as n, ensureSigningCredentials as o, preserveSessionRuntimeMetadata as p, encodeBase64Url as q, readSettings as r, startOfflineReconnection as s, buildClientHeaders as t, updateSettings as u, decodeBase64 as v, writeCredentialsLegacy as w, writeCredentialsDataKey as x, readDaemonState as y, HAPPY_CLOUD_DAEMON_PORT as z };
|
|
@@ -38,7 +38,7 @@ function _interopNamespaceDefault(e) {
|
|
|
38
38
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
39
39
|
|
|
40
40
|
var name = "happy-imou-cloud";
|
|
41
|
-
var version = "2.1.
|
|
41
|
+
var version = "2.1.34";
|
|
42
42
|
var description = "hicloud - Imou 企业定制版。关键是 happy!移动端远程 AI 编程工具,支持 Claude Code、Codex 和 Gemini CLI";
|
|
43
43
|
var author = "long.zhu";
|
|
44
44
|
var license = "MIT";
|
|
@@ -1215,6 +1215,7 @@ var persistence = /*#__PURE__*/Object.freeze({
|
|
|
1215
1215
|
const HAPPY_ORG_REPEAT_THRESHOLD = 3;
|
|
1216
1216
|
const HAPPY_ORG_TURN_REPORT_TAG = "HAPPY_TURN_REPORT";
|
|
1217
1217
|
const HAPPY_ORG_SUMMARY_MAX_LENGTH = 120;
|
|
1218
|
+
const HAPPY_ORG_REPLY_ACK_VERSION = "happy-org-1.7.7-reply-ack-v1";
|
|
1218
1219
|
const HappyOrgInterventionTypeSchema = z.z.enum([
|
|
1219
1220
|
"none",
|
|
1220
1221
|
"review_needed",
|
|
@@ -1231,6 +1232,24 @@ const HappyOrgAccessChannelStateSchema = z.z.enum([
|
|
|
1231
1232
|
"reattach_required",
|
|
1232
1233
|
"runtime_replaced"
|
|
1233
1234
|
]);
|
|
1235
|
+
const HappyOrgRouteTypeSchema = z.z.enum([
|
|
1236
|
+
"direct_reply",
|
|
1237
|
+
"version_planning_reply",
|
|
1238
|
+
"analysis_task",
|
|
1239
|
+
"implementation_task",
|
|
1240
|
+
"ack_plus_reply"
|
|
1241
|
+
]);
|
|
1242
|
+
const HappyOrgAckTypeSchema = z.z.enum([
|
|
1243
|
+
"none",
|
|
1244
|
+
"read_ack",
|
|
1245
|
+
"dispatch_ack",
|
|
1246
|
+
"route_ack",
|
|
1247
|
+
"progress_ack"
|
|
1248
|
+
]);
|
|
1249
|
+
const HappyOrgReplyModeSchema = z.z.enum([
|
|
1250
|
+
"reply-first",
|
|
1251
|
+
"analysis-first"
|
|
1252
|
+
]);
|
|
1234
1253
|
const HappyOrgTaskContextSchema = z.z.object({
|
|
1235
1254
|
taskId: z.z.string().min(1),
|
|
1236
1255
|
organizationId: z.z.string().min(1),
|
|
@@ -1249,10 +1268,20 @@ const HappyOrgTaskControlSchema = z.z.object({
|
|
|
1249
1268
|
});
|
|
1250
1269
|
const HappyOrgReplyContextSchema = z.z.object({
|
|
1251
1270
|
dispatchId: z.z.string().min(1),
|
|
1271
|
+
taskId: z.z.string().min(1).optional().nullable(),
|
|
1272
|
+
organizationId: z.z.string().min(1).optional().nullable(),
|
|
1252
1273
|
scope: z.z.string().min(1),
|
|
1253
1274
|
replyTo: z.z.string().min(1),
|
|
1275
|
+
memberAgentId: z.z.string().min(1).optional().nullable(),
|
|
1276
|
+
sessionId: z.z.string().min(1).optional().nullable(),
|
|
1254
1277
|
positionId: z.z.string().min(1).optional().nullable(),
|
|
1255
|
-
responsibilityId: z.z.string().min(1).optional().nullable()
|
|
1278
|
+
responsibilityId: z.z.string().min(1).optional().nullable(),
|
|
1279
|
+
routeType: HappyOrgRouteTypeSchema.optional().nullable(),
|
|
1280
|
+
ackType: HappyOrgAckTypeSchema.optional().nullable(),
|
|
1281
|
+
replyMode: HappyOrgReplyModeSchema.optional().nullable(),
|
|
1282
|
+
planIntent: z.z.string().min(1).optional().nullable(),
|
|
1283
|
+
routerReason: z.z.string().min(1).optional().nullable(),
|
|
1284
|
+
goldenRouteId: z.z.string().min(1).optional().nullable()
|
|
1256
1285
|
});
|
|
1257
1286
|
const HappyOrgDispatchBusinessAckStatusSchema = z.z.enum([
|
|
1258
1287
|
"accepted",
|
|
@@ -1261,11 +1290,24 @@ const HappyOrgDispatchBusinessAckStatusSchema = z.z.enum([
|
|
|
1261
1290
|
]);
|
|
1262
1291
|
const HappyOrgDispatchAckLedgerEntrySchema = z.z.object({
|
|
1263
1292
|
dispatchId: z.z.string().min(1),
|
|
1293
|
+
ackVersion: z.z.string().min(1).optional().nullable(),
|
|
1264
1294
|
scope: z.z.string().min(1),
|
|
1265
1295
|
taskAck: z.z.string().min(1),
|
|
1266
1296
|
readAck: z.z.literal("yes"),
|
|
1267
1297
|
status: HappyOrgDispatchBusinessAckStatusSchema,
|
|
1268
1298
|
note: z.z.string().nullable(),
|
|
1299
|
+
taskId: z.z.string().min(1).optional().nullable(),
|
|
1300
|
+
organizationId: z.z.string().min(1).optional().nullable(),
|
|
1301
|
+
memberAgentId: z.z.string().min(1).optional().nullable(),
|
|
1302
|
+
sessionId: z.z.string().min(1).optional().nullable(),
|
|
1303
|
+
positionId: z.z.string().min(1).optional().nullable(),
|
|
1304
|
+
responsibilityId: z.z.string().min(1).optional().nullable(),
|
|
1305
|
+
routeType: HappyOrgRouteTypeSchema.optional().nullable(),
|
|
1306
|
+
ackType: HappyOrgAckTypeSchema.optional().nullable(),
|
|
1307
|
+
replyMode: HappyOrgReplyModeSchema.optional().nullable(),
|
|
1308
|
+
planIntent: z.z.string().min(1).optional().nullable(),
|
|
1309
|
+
routerReason: z.z.string().min(1).optional().nullable(),
|
|
1310
|
+
goldenRouteId: z.z.string().min(1).optional().nullable(),
|
|
1269
1311
|
acknowledgedAt: z.z.number().int().nonnegative()
|
|
1270
1312
|
});
|
|
1271
1313
|
const HappyOrgSpecialistHomeIdentitySchema = z.z.object({
|
|
@@ -2122,6 +2164,37 @@ async function listPositionEnvelopes(rootPath) {
|
|
|
2122
2164
|
async function readResponsibilities(rootPath) {
|
|
2123
2165
|
return await readEnvelope(path.join(rootPath, "RESPONSIBILITIES.json"), ResponsibilityEnvelopeSchema);
|
|
2124
2166
|
}
|
|
2167
|
+
async function readHappyOrgDispatchTruthSnapshot(rootPath) {
|
|
2168
|
+
const [positions, responsibilities] = await Promise.all([
|
|
2169
|
+
listPositionEnvelopes(rootPath),
|
|
2170
|
+
readResponsibilities(rootPath)
|
|
2171
|
+
]);
|
|
2172
|
+
const normalizedPositions = positions.map((position) => ({
|
|
2173
|
+
positionId: position.value.positionId,
|
|
2174
|
+
slug: position.value.slug,
|
|
2175
|
+
responsibilityIds: [...position.value.responsibilityIds],
|
|
2176
|
+
agentId: position.value.agentId ?? null,
|
|
2177
|
+
occupancyStatus: normalizeOccupancyStatus(position.value.occupancyStatus)
|
|
2178
|
+
}));
|
|
2179
|
+
const normalizedResponsibilities = responsibilities?.value?.map((responsibility) => ({
|
|
2180
|
+
responsibilityId: responsibility.responsibilityId,
|
|
2181
|
+
positionId: responsibility.positionId,
|
|
2182
|
+
memberAgentId: responsibility.memberAgentId ?? null,
|
|
2183
|
+
status: responsibility.status
|
|
2184
|
+
})) ?? normalizedPositions.flatMap((position) => {
|
|
2185
|
+
const responsibilityId = position.responsibilityIds[0] ?? buildResponsibilityId(position.slug);
|
|
2186
|
+
return [{
|
|
2187
|
+
responsibilityId,
|
|
2188
|
+
positionId: position.positionId,
|
|
2189
|
+
memberAgentId: position.agentId,
|
|
2190
|
+
status: position.agentId ? position.occupancyStatus === "active" ? "in_progress" : "assigned" : "vacancy"
|
|
2191
|
+
}];
|
|
2192
|
+
});
|
|
2193
|
+
return {
|
|
2194
|
+
positions: normalizedPositions,
|
|
2195
|
+
responsibilities: normalizedResponsibilities
|
|
2196
|
+
};
|
|
2197
|
+
}
|
|
2125
2198
|
function mergeTaskEnvelope(taskBundle) {
|
|
2126
2199
|
const { task, workflow, result } = taskBundle;
|
|
2127
2200
|
return {
|
|
@@ -3904,9 +3977,13 @@ function parseHappyOrgFallbackEnvelope(rawEnvelope) {
|
|
|
3904
3977
|
replyTo,
|
|
3905
3978
|
organizationId: typeof parsed.organization_id === "string" ? parsed.organization_id.trim() : null,
|
|
3906
3979
|
memberAgentId: typeof parsed.member_agent_id === "string" ? parsed.member_agent_id.trim() : null,
|
|
3980
|
+
sessionId: typeof parsed.session_id === "string" ? parsed.session_id.trim() : null,
|
|
3907
3981
|
supervisorAgentId: typeof parsed.supervisor_agent_id === "string" ? parsed.supervisor_agent_id.trim() : null,
|
|
3908
3982
|
positionId: typeof parsed.position_id === "string" ? parsed.position_id.trim() : null,
|
|
3909
|
-
responsibilityId: typeof parsed.responsibility_id === "string" ? parsed.responsibility_id.trim() : null
|
|
3983
|
+
responsibilityId: typeof parsed.responsibility_id === "string" ? parsed.responsibility_id.trim() : null,
|
|
3984
|
+
routeType: parsed.route_type === "direct_reply" || parsed.route_type === "version_planning_reply" || parsed.route_type === "analysis_task" || parsed.route_type === "implementation_task" || parsed.route_type === "ack_plus_reply" ? parsed.route_type : null,
|
|
3985
|
+
ackType: parsed.ack_type === "none" || parsed.ack_type === "read_ack" || parsed.ack_type === "dispatch_ack" || parsed.ack_type === "route_ack" || parsed.ack_type === "progress_ack" ? parsed.ack_type : null,
|
|
3986
|
+
replyMode: parsed.reply_mode === "reply-first" || parsed.reply_mode === "analysis-first" ? parsed.reply_mode : null
|
|
3910
3987
|
};
|
|
3911
3988
|
} catch {
|
|
3912
3989
|
return null;
|
|
@@ -3930,8 +4007,15 @@ function buildHappyOrgFallbackUserMessage(rawEnvelope) {
|
|
|
3930
4007
|
} : {},
|
|
3931
4008
|
replyContext: {
|
|
3932
4009
|
dispatchId: envelope.dispatchId,
|
|
4010
|
+
taskId: envelope.taskId,
|
|
4011
|
+
organizationId: envelope.organizationId,
|
|
3933
4012
|
scope: envelope.scope,
|
|
3934
4013
|
replyTo: envelope.replyTo,
|
|
4014
|
+
memberAgentId: envelope.memberAgentId,
|
|
4015
|
+
sessionId: envelope.sessionId,
|
|
4016
|
+
routeType: envelope.routeType ?? "ack_plus_reply",
|
|
4017
|
+
ackType: envelope.ackType ?? "dispatch_ack",
|
|
4018
|
+
replyMode: envelope.replyMode ?? "reply-first",
|
|
3935
4019
|
...envelope.positionId ? { positionId: envelope.positionId } : {},
|
|
3936
4020
|
...envelope.responsibilityId ? { responsibilityId: envelope.responsibilityId } : {}
|
|
3937
4021
|
}
|
|
@@ -6152,6 +6236,15 @@ class ApiClient {
|
|
|
6152
6236
|
});
|
|
6153
6237
|
return response.data.frontDoor;
|
|
6154
6238
|
}
|
|
6239
|
+
async getOrganizationView(opts = {}) {
|
|
6240
|
+
const response = await this.request({
|
|
6241
|
+
method: "GET",
|
|
6242
|
+
url: `${configuration.serverUrl}/control/v1/views/organization`,
|
|
6243
|
+
headers: opts.organizationId ? { "x-happy-organization-id": opts.organizationId } : void 0,
|
|
6244
|
+
timeout: 5e3
|
|
6245
|
+
});
|
|
6246
|
+
return response.data.organization;
|
|
6247
|
+
}
|
|
6155
6248
|
async listOrganizationAgents(opts = {}) {
|
|
6156
6249
|
const response = await this.request({
|
|
6157
6250
|
method: "GET",
|
|
@@ -6174,7 +6267,14 @@ class ApiClient {
|
|
|
6174
6267
|
cross_scope_policy: "ask-first",
|
|
6175
6268
|
position_id: opts.positionId ?? null,
|
|
6176
6269
|
responsibility_id: opts.responsibilityId ?? null,
|
|
6177
|
-
note: opts.note ?? null
|
|
6270
|
+
note: opts.note ?? null,
|
|
6271
|
+
requested_member_agent_id: opts.requestedMemberAgentId ?? null,
|
|
6272
|
+
position_truth_agent_id: opts.positionTruthAgentId ?? null,
|
|
6273
|
+
responsibility_truth_member_agent_id: opts.responsibilityTruthMemberAgentId ?? null,
|
|
6274
|
+
live_binding_session_id: opts.liveBindingSessionId ?? null,
|
|
6275
|
+
runtime_session_id: opts.runtimeSessionId ?? null,
|
|
6276
|
+
validation_result: opts.validationResult ?? "shadow_pass",
|
|
6277
|
+
rejection_reason: opts.rejectionReason ?? null
|
|
6178
6278
|
},
|
|
6179
6279
|
headers: withLegacyControlAck({ "x-happy-organization-id": opts.organizationId }),
|
|
6180
6280
|
timeout: 1e4
|
|
@@ -6599,6 +6699,7 @@ exports.ApiSessionClient = ApiSessionClient;
|
|
|
6599
6699
|
exports.AsyncLock = AsyncLock;
|
|
6600
6700
|
exports.HAPPY_CLOUD_DAEMON_PORT = HAPPY_CLOUD_DAEMON_PORT;
|
|
6601
6701
|
exports.HAPPY_ORG_REPEAT_THRESHOLD = HAPPY_ORG_REPEAT_THRESHOLD;
|
|
6702
|
+
exports.HAPPY_ORG_REPLY_ACK_VERSION = HAPPY_ORG_REPLY_ACK_VERSION;
|
|
6602
6703
|
exports.HAPPY_ORG_SUMMARY_MAX_LENGTH = HAPPY_ORG_SUMMARY_MAX_LENGTH;
|
|
6603
6704
|
exports.HAPPY_ORG_TURN_REPORT_TAG = HAPPY_ORG_TURN_REPORT_TAG;
|
|
6604
6705
|
exports.HappyOrgTurnReportSchema = HappyOrgTurnReportSchema;
|
|
@@ -6630,6 +6731,7 @@ exports.preserveSessionRuntimeMetadata = preserveSessionRuntimeMetadata;
|
|
|
6630
6731
|
exports.processHappyOrgRepoRequests = processHappyOrgRepoRequests;
|
|
6631
6732
|
exports.readCredentials = readCredentials;
|
|
6632
6733
|
exports.readDaemonState = readDaemonState;
|
|
6734
|
+
exports.readHappyOrgDispatchTruthSnapshot = readHappyOrgDispatchTruthSnapshot;
|
|
6633
6735
|
exports.readSettings = readSettings;
|
|
6634
6736
|
exports.recordHappyOrgTurnReport = recordHappyOrgTurnReport;
|
|
6635
6737
|
exports.releaseDaemonLock = releaseDaemonLock;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createDefaultRuntimeShell } from './index-
|
|
1
|
+
import { c as createDefaultRuntimeShell } from './index-sqm5plVs.mjs';
|
|
2
2
|
import 'chalk';
|
|
3
|
-
import './api-
|
|
3
|
+
import './api-B3Zl8oHG.mjs';
|
|
4
4
|
import 'axios';
|
|
5
5
|
import 'fs';
|
|
6
6
|
import 'node:fs';
|