agent-transport-system 0.6.4 → 0.6.6
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/ats-dev.js +1 -1
- package/dist/ats.js +207 -60
- package/dist/ats.js.map +1 -1
- package/dist/{runtime-config-0EDwy6l-.js → runtime-config-CxhCKyAq.js} +32 -8
- package/dist/runtime-config-CxhCKyAq.js.map +1 -0
- package/package.json +2 -2
- package/skills/ats-cli/SKILL.md +4 -2
- package/skills/ats-cli/playbooks/space-ops.md +1 -1
- package/skills/ats-cli/references/commands.md +1 -1
- package/skills/ats-cli/references/runtime-resolution.md +1 -1
- package/dist/runtime-config-0EDwy6l-.js.map +0 -1
package/dist/ats-dev.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import "./lock-BYMWvQAg.js";
|
|
4
|
-
import { v as DEV_LOCAL_GATEWAY_BASE_URL } from "./runtime-config-
|
|
4
|
+
import { v as DEV_LOCAL_GATEWAY_BASE_URL } from "./runtime-config-CxhCKyAq.js";
|
|
5
5
|
|
|
6
6
|
//#region src/ats-dev.ts
|
|
7
7
|
const LOCAL_GATEWAY_URL = DEV_LOCAL_GATEWAY_BASE_URL;
|
package/dist/ats.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { $ as getAgentExecutionReadinessBatchBodySchema, $n as atsdTaskResultEnvelopeWriteSchema, $t as serverErrorFrameSchema, A as claimExecutionDiagnosticsResponseSchema, An as writeSetupTokenLocalRuntimeObservedMetadataResponseSchema, Ar as resolveSpaceMentionLabels, At as observabilityWakeTraceSelectorSchema, B as currentLocalRuntimeReplyReadinessResponseSchema, Bn as DISPATCH_ACTIVITY_FAILED_PURPOSE, Bt as postSpaceThreadSignalResponseSchema, C as atsdControlPlaneRequestSchema, Cn as submitRuntimeRegistrationBodySchema, Cr as normalizeOptionalWorkingDirectory, Ct as localRuntimesResponseSchema, D as canonicalizeControllerRefForKind, Dn as writeCurrentDeviceObservedMetadataBodySchema, Dr as resolveBuiltinUpstreamConversationRefKind, Dt as normalizeSpaceCursorPatch, E as canonicalizeBuiltinControllerRef, En as upsertSpaceDeletionTombstoneResponseSchema, Er as profileWorkspaceModeSchema, Et as normalizeListSignalsReadQuerySemantics, F as createSpaceResponseSchema, Fn as ATSD_TASK_RESULT_SCHEMA_VERSION, Ft as postNormalMessageBodySchema, G as ensureAgentProfilePrimaryBindingBodySchema, Gn as MESSAGE_MENTION_TYPE_VALUES, Gt as providerDispatchRuntimeContextSchema, H as daemonRuntimeLeaseSchema, Hn as LEGACY_RUNTIME_DISPATCH_POLICY, Ht as prepareSessionStreamServerFrameSchema, I as createSpaceThreadBodySchema, In as CONVERSATION_CONTINUITY_WARNING_PURPOSE, It as postNormalMessageResponseSchema, J as finalClaimRouteParamsSchema, Jn as SPACE_MENTION_REJECT_NOTICE_PURPOSE, Jt as reserveFinalClaimBodySchema, K as ensureAgentProfilePrimaryBindingResponseSchema, Kn as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, Kt as querySpaceDeletionTombstonesResponseSchema, L as createSpaceThreadResponseSchema, Ln as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, Lt as postSpaceMembersBodySchema, M as createSpaceBodySchema, Mn as AGENT_REPLYING_PURPOSE, Mt as patchSpaceContractBodySchema, N as createSpaceDiagnosticReportBodySchema, Nn as AGENT_REPLY_PREVIEW_END_PURPOSE, Nr as runtimeCoordinatorExecutionTokenEnvelopeSchema, Nt as patchSpaceContractResponseSchema, O as catchupResponseSchema, On as writeCurrentDeviceObservedMetadataResponseSchema, Or as resolveMessageEnvelopeTargetField, Ot as notifyAgentProfileRouteCatalogChangedBodySchema, P as createSpaceDiagnosticReportResponseSchema, Pn as AGENT_REPLY_PREVIEW_PURPOSE, Pr as sanitizeSignalTextPreview, Pt as patchStartSessionBodySchema, Q as gatewayErrorEnvelopeSchema, Qn as atsSpaceEgressActionSchema, Qt as resolveStartHandoffResponseSchema, R as createStartSessionBodySchema, Rn as DAEMON_HUB_SCHEMA_VERSION, Rt as postSpaceMembersResponseSchema, S as atsRequestContextSchema, Sn as submitRuntimeCapabilityReportsResponseSchema, Sr as normalizeMessageEnvelope, St as localRuntimesQuerySchema, T as buildControllerRoutingKeyForKind, Tn as upsertProfileSpaceHistoryResponseSchema, Tr as parseOptionalClientMessageId, Tt as normalizeBuiltinControllerProviderId, U as deleteSpaceResponseSchema, Un as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, Ut as projectObservabilityWakeCorrelation, V as daemonRouteObservationResponseSchema, Vn as DISPATCH_ACTIVITY_RETRYING_PURPOSE, Vt as prepareSessionResponseSchema, W as dispatchBriefSchema, Wn as MAX_SIGNAL_REPLY_TO_PREVIEW_LENGTH, Wt as projectSpaceDispatchTraceFinalVisibleOutcome, X as forgetCurrentComputerResponseSchema, Xn as SPACE_UPDATES_MAX_LIMIT, Xt as resolveSpaceDispatchTraceRootCause, Y as forgetComputerResponseSchema, Yn as SPACE_PASSWORD_MIN_LENGTH, Yt as resolveBuiltinProviderConversationCapability, Z as gatewayErrorCodeSchema, Zn as atsRuntimeProfileIdSchema, Zt as resolveStartHandoffBodySchema, _ as ATSD_CONTROL_PLANE_SCHEMA_VERSION, _n as startSessionSpaceChoiceBodySchema, _r as daemonHubSubmitTaskResultRequestSchema, _t as leaveSpaceResponseSchema, a as runWithHeldLock, an as spaceConversationBindingImportResponseSchema, ar as createDaemonRouteObservationSummary, at as getSpaceContractResponseSchema, b as agentProfileBindingRouteParamsSchema, bn as structuredGuidePayloadFromInputSchema, br as formatCanonicalMentionLiteral, bt as listSpaceThreadSignalsResponseSchema, c as LEGACY_ATS_RUNTIME_SESSION_ENV_KEY, cn as spaceCreatorSchema, cr as daemonHubDispatchLifecycleRequestSchema, ct as getSpaceDispatchLookupResponseSchema, d as resolveRuntimeSession, dn as spaceMetaSchema, dr as daemonHubDispatchRuntimeEvidenceRequestSchema, dt as getSpaceThreadResponseSchema, en as setCurrentDeviceTargetBodySchema, er as atsdTaskResultOpenClawGatewayVisibilityStatusSchema, et as getAgentExecutionReadinessBatchResponseSchema, f as resolveRuntimeSessionId, fn as spaceViewerMembershipResponseSchema, fr as daemonHubHeartbeatRequestSchema, ft as getSpaceUpdatesResponseSchema, g as resolveMappedPublicAgentFailureReason, gn as startSessionResponseSchema, gr as daemonHubRouteCatalogChangedFramePayloadSchema, gt as isExplicitBuiltinControllerRef, h as resolveBuiltinAgentControllerBrand, hn as startSessionProgressSchema, hr as daemonHubRegisterSessionResponseSchema, ht as incomingServerMessageSchema, i as releaseLock, in as spaceConversationBindingDeleteResponseSchema, ir as conversationExecutionStateSchema, it as getPrepareReadinessResponseSchema, j as continuitySchema, jn as AGENT_REPLYING_END_PURPOSE, jt as patchProfileSpaceHistoryStatusResponseSchema, k as claimExecutionDiagnosticsQuerySchema, kn as writeSetupTokenLocalRuntimeObservedMetadataBodySchema, kr as resolveSingleSpaceMentionLabels, kt as notifyAgentProfileRouteCatalogChangedResponseSchema, l as listRuntimeSessionStates, ln as spaceDispatchTraceResponseSchema, lr as daemonHubDispatchPreviewEndRequestSchema, lt as getSpaceDispatchResultResponseSchema, m as CODEX_UPGRADE_REQUIRED_REASON, mn as startProfileReadinessSummarySchema, mr as daemonHubRegisterSessionRequestSchema, mt as getSpaceWakeTraceWaterfallResponseSchema, n as isAtsLockError, nn as signalEnvelopeSchema, nr as buildUpstreamConversationRef, nt as getAgentProfilePrimaryBindingResponseSchema, o as tryCleanupStaleLock, on as spaceConversationBindingResponseSchema, or as daemonHubDeliverDispatchRequestSchema, ot as getSpaceConversationRemoteStatusResponseSchema, p as writeRuntimeSessionState, pn as startDeviceProjectionSchema, pr as daemonHubHeartbeatResponseSchema, pt as getSpaceWakeProgressResponseSchema, q as entryBriefSchema, qn as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, qt as removeSpaceMembersResponseSchema, r as readLockMeta, rn as spaceConversationBindingConflictResponseSchema, rr as collectCanonicalMentionTextFragments, rt as getPrepareReadinessQuerySchema, s as ATS_RUNTIME_SESSION_ENV_KEY, sn as spaceConversationBindingUpsertResponseSchema, sr as daemonHubDeliveryExecutionIdentitySchema, st as getSpaceConversationStatusResponseSchema, t as acquireLock, tn as setLocalRuntimeDisplayNameBodySchema, tr as atsdTaskResultPayloadSchema, tt as getAgentExecutionReadinessResponseSchema, u as readRuntimeSessionState, un as spaceMembersSnapshotSchema, ur as daemonHubDispatchPreviewRequestSchema, ut as getSpaceStatusResponseSchema, v as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, vn as startSessionSpaceChoiceResponseSchema, vr as daemonServiceContractSchema, vt as listProfileSpaceHistoryResponseSchema, w as atsdControlPlaneResponseSchema, wn as submitRuntimeRegistrationResponseSchema, wr as normalizeSpacePasswordText, wt as normalizeBuiltinControllerAgentId, x as atsProfileIdSchema, xn as submitRuntimeCapabilityReportsBodySchema, xr as getSpaceMessageAddressingRelationSupportForTargetKind, xt as listSpaceThreadsResponseSchema, y as agentExecutionReadinessRouteParamsSchema, yn as startSessionWithTokenResponseSchema, yr as daemonStreamFrameSchema, yt as listSpaceThreadEventsResponseSchema, z as currentDeviceTargetResponseSchema, zn as DISPATCH_ACTIVITY_DISPATCHING_PURPOSE, zt as postSpaceThreadSignalBodySchema } from "./lock-BYMWvQAg.js";
|
|
4
4
|
import { A as runtimeDir, C as normalizeAtsProfileId, D as resolveAtsEnvPreset, E as resolveAtsCliEntryNameFromArgv, F as systemDir, N as skillsDir, O as resolveAtsRootDir, P as spacesDir, S as normalizeAccountKey, T as profileViewPath, a as accountProfileWorkspacePath, c as atsRootDir, d as deviceOpenClawProfileBootstrapPath, f as deviceOpenClawProfileDir, i as accountProfileViewPath, j as runtimeLogsDir, k as resolveDefaultAtsHomeDirname, n as accountProfileLocalMetaPath, o as accountsDir, p as deviceOpenClawProfileWorkspaceDir, r as accountProfileSpaceCacheDir, s as atsBackupsDir, t as ATS_HOME_ENV_KEY, w as profileDir, y as legacyAccountProfileSpacesDir } from "./paths-DFiopT5Y.js";
|
|
5
|
-
import { A as toSpaceCursorUrl, B as toSpaceSignalsUrl, C as resolveDefaultGatewayBaseUrl, D as toDaemonRouteObservationUrl, E as toClaimExecutionDiagnosticsUrl, F as toSpaceMembersUrl, H as toSpaceWsUrl, I as toSpaceMetaUrl, L as toSpacePasswordUrl, M as toSpaceDispatchLookupUrl, N as toSpaceDispatchTraceUrl, O as toSpaceContractUrl, P as toSpaceLeaveUrl, R as toSpaceRemoveMembersUrl, S as resolveBaseUrlOrNull, T as normalizeBaseUrl, V as toSpaceUpdatesUrl, _ as updateConfiguredStartV1OnboardingState, a as getConfiguredDeviceRuntimeState, b as normalizeGatewayBaseUrlOrNull, c as getConfiguredStartV1OnboardingState, d as resolveRuntimeSkillsCustomTargetId, f as setConfiguredBaseUrl, g as updateConfiguredSkillsConfig, h as updateConfiguredOnboardingConfig, i as getConfiguredDaemonDispatchLimits, j as toSpaceDeleteUrl, k as toSpaceCreateUrl, l as getConfiguredViewCustomization, m as updateConfiguredDeviceRuntimeState, n as alignRuntimeConfigStorage, o as getConfiguredOnboardingDisclaimerAcceptedAt, p as setConfiguredSkillsConfig, r as createDefaultRuntimeAgentControllerSettings, s as getConfiguredSkillsConfig, t as DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE, u as getRuntimeConfigReadHealth, w as resolveExplicitGatewayUrlOrThrow, x as resolveBaseUrl, y as normalizeGatewayBaseUrl, z as toSpaceResultUrl } from "./runtime-config-
|
|
5
|
+
import { A as toSpaceCursorUrl, B as toSpaceSignalsUrl, C as resolveDefaultGatewayBaseUrl, D as toDaemonRouteObservationUrl, E as toClaimExecutionDiagnosticsUrl, F as toSpaceMembersUrl, H as toSpaceWsUrl, I as toSpaceMetaUrl, L as toSpacePasswordUrl, M as toSpaceDispatchLookupUrl, N as toSpaceDispatchTraceUrl, O as toSpaceContractUrl, P as toSpaceLeaveUrl, R as toSpaceRemoveMembersUrl, S as resolveBaseUrlOrNull, T as normalizeBaseUrl, V as toSpaceUpdatesUrl, _ as updateConfiguredStartV1OnboardingState, a as getConfiguredDeviceRuntimeState, b as normalizeGatewayBaseUrlOrNull, c as getConfiguredStartV1OnboardingState, d as resolveRuntimeSkillsCustomTargetId, f as setConfiguredBaseUrl, g as updateConfiguredSkillsConfig, h as updateConfiguredOnboardingConfig, i as getConfiguredDaemonDispatchLimits, j as toSpaceDeleteUrl, k as toSpaceCreateUrl, l as getConfiguredViewCustomization, m as updateConfiguredDeviceRuntimeState, n as alignRuntimeConfigStorage, o as getConfiguredOnboardingDisclaimerAcceptedAt, p as setConfiguredSkillsConfig, r as createDefaultRuntimeAgentControllerSettings, s as getConfiguredSkillsConfig, t as DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE, u as getRuntimeConfigReadHealth, w as resolveExplicitGatewayUrlOrThrow, x as resolveBaseUrl, y as normalizeGatewayBaseUrl, z as toSpaceResultUrl } from "./runtime-config-CxhCKyAq.js";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
7
7
|
import { Command, Option } from "commander";
|
|
8
8
|
import { accessSync, appendFileSync, chmodSync, constants, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -27,12 +27,12 @@ import wrapAnsi from "wrap-ansi";
|
|
|
27
27
|
import { Box, Container, Editor, Key, ProcessTerminal, TUI, Text, getEditorKeybindings, matchesKey } from "@mariozechner/pi-tui";
|
|
28
28
|
|
|
29
29
|
//#region package.json
|
|
30
|
-
var version = "0.6.
|
|
30
|
+
var version = "0.6.6";
|
|
31
31
|
var package_default = {
|
|
32
32
|
$schema: "https://www.schemastore.org/package.json",
|
|
33
33
|
name: "agent-transport-system",
|
|
34
34
|
version,
|
|
35
|
-
atsReleaseDate: "2026-05-
|
|
35
|
+
atsReleaseDate: "2026-05-28",
|
|
36
36
|
description: "Agent Transport System CLI - https://ats.sh",
|
|
37
37
|
license: "MIT",
|
|
38
38
|
type: "module",
|
|
@@ -6311,7 +6311,7 @@ function createSpaceUnsupportedProfileKindGuideError(input) {
|
|
|
6311
6311
|
agentCommands: [
|
|
6312
6312
|
"ats profiles list --view agent",
|
|
6313
6313
|
"ats space list --profile <profile-id> --view agent",
|
|
6314
|
-
"ats space history <space-id> --profile <profile-id> --view agent"
|
|
6314
|
+
"ats space history <space-id> --profile <profile-id> --kind text --limit 20 --view agent"
|
|
6315
6315
|
],
|
|
6316
6316
|
notes: ["`--view agent` controls machine-readable output. It does not require the acting identity to be an Agent Profile.", "System profiles are internal and cannot be used as the acting identity for Space commands."]
|
|
6317
6317
|
},
|
|
@@ -6344,7 +6344,7 @@ function createSpaceRemoveMembersCurrentProfileGuideError(input) {
|
|
|
6344
6344
|
],
|
|
6345
6345
|
agentRequiredArgs: ["<space-id>", `--profile ${input.profileId}`],
|
|
6346
6346
|
agentOptionalArgs: ["--view <agent|human|auto>"],
|
|
6347
|
-
agentCommands: [`ats space leave <space-id> --profile ${input.profileId} --view agent`, `ats space history <space-id> --profile ${input.profileId} --view agent`],
|
|
6347
|
+
agentCommands: [`ats space leave <space-id> --profile ${input.profileId} --view agent`, `ats space history <space-id> --profile ${input.profileId} --kind text --limit 20 --view agent`],
|
|
6348
6348
|
notes: ["self-removal is blocked for remove-members; leave is the self-exit command."]
|
|
6349
6349
|
},
|
|
6350
6350
|
hints: [`ats space leave <space-id> --profile ${input.profileId} --view agent`]
|
|
@@ -37125,6 +37125,7 @@ function buildActionGuidanceLines(input) {
|
|
|
37125
37125
|
const lines = [];
|
|
37126
37126
|
if (publicationRequirement.allowsRawReplyWithoutAction) lines.push("- Default: share your raw reply to the Space.");
|
|
37127
37127
|
lines.push(`- ${publicationRequirement.actionRequirementLine}`);
|
|
37128
|
+
lines.push("- When ATS Space Action commands are available, run one command in the shell. Do not print fallback JSON as your final answer unless every Space Action command fails.");
|
|
37128
37129
|
lines.push(...buildSpaceActionCommandLines(input, publicationRequirement));
|
|
37129
37130
|
lines.push(`- Need context? Run \`${buildSpaceHistoryCommand({
|
|
37130
37131
|
cliEntry: input.cliEntry,
|
|
@@ -37164,7 +37165,7 @@ function buildIfUnsureLine(input) {
|
|
|
37164
37165
|
function buildSpaceHistoryCommand(input) {
|
|
37165
37166
|
const cliEntry = normalizeOptionalText$46(input.cliEntry) ?? "ats";
|
|
37166
37167
|
const normalizedSpaceId = normalizeOptionalText$46(input.spaceId);
|
|
37167
|
-
return normalizedSpaceId ? `${cliEntry} space history ${normalizedSpaceId}` : `${cliEntry} space history <space-id
|
|
37168
|
+
return normalizedSpaceId ? `${cliEntry} space history ${normalizedSpaceId} --kind text --limit 20` : `${cliEntry} space history <space-id> --kind text --limit 20`;
|
|
37168
37169
|
}
|
|
37169
37170
|
function buildActivatedByLine(input) {
|
|
37170
37171
|
const mentionSourceProfileName = normalizeOptionalText$46(input.mentionSourceProfileName);
|
|
@@ -41545,7 +41546,7 @@ function buildStructuredActionRepairPrompt(input) {
|
|
|
41545
41546
|
const previousOutput = normalizeOptionalText$46(input.previousOutput);
|
|
41546
41547
|
const normalizedSpaceId = normalizeOptionalText$46(input.spaceId);
|
|
41547
41548
|
const cliEntry = normalizeOptionalText$46(input.cliEntry) ?? "ats";
|
|
41548
|
-
const historyCommand = normalizedSpaceId ? `${cliEntry} space history ${normalizedSpaceId}` : `${cliEntry} space history <space-id
|
|
41549
|
+
const historyCommand = normalizedSpaceId ? `${cliEntry} space history ${normalizedSpaceId} --kind text --limit 20` : `${cliEntry} space history <space-id> --kind text --limit 20`;
|
|
41549
41550
|
const promptCommand = `${cliEntry} prompt`;
|
|
41550
41551
|
const spaceGuideCommand = normalizedSpaceId ? `${cliEntry} space guide ${normalizedSpaceId}` : `${cliEntry} space guide <space-id>`;
|
|
41551
41552
|
const publicationRequirement = resolveSpacePublicationRequirement(input.spaceContractSnapshot);
|
|
@@ -41560,6 +41561,7 @@ function buildStructuredActionRepairPrompt(input) {
|
|
|
41560
41561
|
] : [],
|
|
41561
41562
|
"Do not change the user's intent.",
|
|
41562
41563
|
"ATS only consumes your final answer and at most one valid trailing ```ats-space-action``` JSON block.",
|
|
41564
|
+
"If an ATS Space Action CLI command is available, run that command instead of printing fallback JSON.",
|
|
41563
41565
|
"Return the corrected final answer again.",
|
|
41564
41566
|
publicationRequirement.repairRequirementLine,
|
|
41565
41567
|
...SPACE_ACTION_TARGET_GUIDANCE_LINES,
|
|
@@ -45068,6 +45070,21 @@ function consumeAnsiOperatingSystemCommand(value, startIndex) {
|
|
|
45068
45070
|
return value.length;
|
|
45069
45071
|
}
|
|
45070
45072
|
|
|
45073
|
+
//#endregion
|
|
45074
|
+
//#region src/system/local-service-diagnostics.ts
|
|
45075
|
+
function buildLocalServiceDiagnosticsPayload(input) {
|
|
45076
|
+
return { localServiceDiagnostics: {
|
|
45077
|
+
source: "local_service_diagnostics",
|
|
45078
|
+
scope: "diagnostic_only",
|
|
45079
|
+
authoritative: false,
|
|
45080
|
+
verdict: "not_wake_readiness",
|
|
45081
|
+
meaning: "Diagnostic-only local service evidence. It can explain local problems, but it is not the Ready verdict and not a Space Wake outcome. Use daemonRouteObservation for current route evidence and service trace for a concrete Wake delivery.",
|
|
45082
|
+
useInstead: ["daemonRouteObservation", "ats service trace"],
|
|
45083
|
+
deviceEvidence: input.deviceEvidence,
|
|
45084
|
+
agentEvidence: input.agentEvidence
|
|
45085
|
+
} };
|
|
45086
|
+
}
|
|
45087
|
+
|
|
45071
45088
|
//#endregion
|
|
45072
45089
|
//#region src/commands/daemon.ts
|
|
45073
45090
|
const STATUS_CLEANUP_SIGNIFICANT_ANOMALIES = DAEMON_SERVICE_REPAIR_ANOMALIES;
|
|
@@ -46767,13 +46784,10 @@ function emitDaemonAgentStatus(input) {
|
|
|
46767
46784
|
});
|
|
46768
46785
|
}
|
|
46769
46786
|
function buildDaemonLocalReplyReadinessEvidenceDiagnostics(input) {
|
|
46770
|
-
return {
|
|
46771
|
-
|
|
46772
|
-
|
|
46773
|
-
|
|
46774
|
-
device: input.deviceReplyReadiness,
|
|
46775
|
-
agent: input.legacyAgentReplyReadiness
|
|
46776
|
-
} };
|
|
46787
|
+
return buildLocalServiceDiagnosticsPayload({
|
|
46788
|
+
deviceEvidence: input.deviceReplyReadiness,
|
|
46789
|
+
agentEvidence: input.legacyAgentReplyReadiness
|
|
46790
|
+
});
|
|
46777
46791
|
}
|
|
46778
46792
|
function emitDaemonAgentLocalStatus(input) {
|
|
46779
46793
|
const { environmentTarget, presenter, snapshot } = input;
|
|
@@ -51601,7 +51615,8 @@ async function inspectPotentialLegacyAtsSkill(input) {
|
|
|
51601
51615
|
parentDir,
|
|
51602
51616
|
reasonCode: "legacy_ats_skill_id",
|
|
51603
51617
|
problem: "This is an old ATS skill name. Agents can still load it and learn stale ATS instructions.",
|
|
51604
|
-
recommendation: "Install the current ATS skill into this skill root, then remove or rename this legacy skill directory."
|
|
51618
|
+
recommendation: "Install the current ATS skill into this skill root, then remove or rename this legacy skill directory.",
|
|
51619
|
+
cleanupCommands: buildLegacySkillCleanupCommands(skillDir)
|
|
51605
51620
|
};
|
|
51606
51621
|
if (input.currentSkillIds.has(input.skillId) && !input.targetCurrentSkillDirs.has(skillDir) && isLikelyAtsSkillDocument(rawSkill)) return {
|
|
51607
51622
|
skillId: input.skillId,
|
|
@@ -51609,10 +51624,17 @@ async function inspectPotentialLegacyAtsSkill(input) {
|
|
|
51609
51624
|
parentDir,
|
|
51610
51625
|
reasonCode: "unmanaged_current_ats_skill_copy",
|
|
51611
51626
|
problem: "This looks like an ATS skill copy, but this ATS installation does not manage it.",
|
|
51612
|
-
recommendation: "Replace it through ats skills ensure for that skill root, or remove it if this agent should not use ATS."
|
|
51627
|
+
recommendation: "Replace it through ats skills ensure for that skill root, or remove it if this agent should not use ATS.",
|
|
51628
|
+
cleanupCommands: buildLegacySkillCleanupCommands(skillDir)
|
|
51613
51629
|
};
|
|
51614
51630
|
return null;
|
|
51615
51631
|
}
|
|
51632
|
+
function buildLegacySkillCleanupCommands(skillDir) {
|
|
51633
|
+
return [`rm -rf ${quoteShellArg(skillDir)}`, `mv ${quoteShellArg(skillDir)} ${quoteShellArg(`${skillDir}.legacy`)}`];
|
|
51634
|
+
}
|
|
51635
|
+
function quoteShellArg(value) {
|
|
51636
|
+
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
51637
|
+
}
|
|
51616
51638
|
function isLikelyAtsSkillDocument(rawSkill) {
|
|
51617
51639
|
const normalized = rawSkill.toLowerCase();
|
|
51618
51640
|
return normalized.includes("agent transport system") || normalized.includes("ats cli") || normalized.includes("ats space action") || normalized.includes("ats skills");
|
|
@@ -51872,6 +51894,7 @@ async function runSkillsCheck$1(input) {
|
|
|
51872
51894
|
targetStates,
|
|
51873
51895
|
legacyFindings,
|
|
51874
51896
|
legacyFindingCount: legacyFindings.length,
|
|
51897
|
+
legacyReview: legacyFindings.length > 0 ? buildLegacyAtsSkillAgentReview(legacyFindings) : null,
|
|
51875
51898
|
requiresReview: summary.outdated > 0 || summary.missing > 0 || summary.externalConflict > 0 || legacyFindings.length > 0
|
|
51876
51899
|
};
|
|
51877
51900
|
if (runtime.resolvedView === "agent" && !input.suppressAgentOverview) emitSkillsAgentOverview({
|
|
@@ -53326,7 +53349,8 @@ function emitLegacyAtsSkillFindingsHumanCard(input) {
|
|
|
53326
53349
|
`path: ${finding.skillDir}`,
|
|
53327
53350
|
"not managed by this ATS installation",
|
|
53328
53351
|
finding.problem,
|
|
53329
|
-
finding.recommendation
|
|
53352
|
+
finding.recommendation,
|
|
53353
|
+
`cleanup: ${finding.cleanupCommands.join(" or ")}`
|
|
53330
53354
|
].join(" · ")
|
|
53331
53355
|
})),
|
|
53332
53356
|
compact: true
|
|
@@ -53339,6 +53363,15 @@ function buildLegacyAtsSkillNextStepRows(legacyFindings) {
|
|
|
53339
53363
|
value: pc.bold(formatInlineAtsCliCommands("Remove or rename the listed legacy ATS skill directories after installing the current skill with `ats skills ensure --all --view agent` or `ats skills ensure --dir <absolute-path> --view agent`."))
|
|
53340
53364
|
}];
|
|
53341
53365
|
}
|
|
53366
|
+
function buildLegacyAtsSkillAgentReview(legacyFindings) {
|
|
53367
|
+
return {
|
|
53368
|
+
priority: "high",
|
|
53369
|
+
reason: "Legacy or unmanaged ATS skill copies can make agents read old ATS instructions even when the current ATS-managed skill is up to date.",
|
|
53370
|
+
nextStep: "Install the current ATS skill first, then remove or rename each listed legacy directory.",
|
|
53371
|
+
paths: legacyFindings.map((finding) => finding.skillDir),
|
|
53372
|
+
cleanupCommands: legacyFindings.flatMap((finding) => finding.cleanupCommands)
|
|
53373
|
+
};
|
|
53374
|
+
}
|
|
53342
53375
|
function formatSkillsCommand(command) {
|
|
53343
53376
|
return pc.bold(pc.cyan(formatAtsCliCommand(command)));
|
|
53344
53377
|
}
|
|
@@ -53866,6 +53899,7 @@ function emitInstallSummary(input) {
|
|
|
53866
53899
|
results: input.installResults,
|
|
53867
53900
|
legacyFindings: input.legacyFindings ?? [],
|
|
53868
53901
|
legacyFindingCount: input.legacyFindings?.length ?? 0,
|
|
53902
|
+
legacyReview: (input.legacyFindings?.length ?? 0) > 0 ? buildLegacyAtsSkillAgentReview(input.legacyFindings ?? []) : null,
|
|
53869
53903
|
requiresReview: summary.failed > 0 || (input.legacyFindings?.length ?? 0) > 0
|
|
53870
53904
|
};
|
|
53871
53905
|
if (input.resolvedView === "agent") {
|
|
@@ -62796,13 +62830,10 @@ function isConnectionVerificationPendingReason(reasonCode) {
|
|
|
62796
62830
|
return reasonCode === "agent_profile_binding.execution_readiness_pending";
|
|
62797
62831
|
}
|
|
62798
62832
|
function buildLocalReplyReadinessEvidenceDiagnostics(input) {
|
|
62799
|
-
return {
|
|
62800
|
-
|
|
62801
|
-
|
|
62802
|
-
|
|
62803
|
-
device: input.deviceReplyReadiness,
|
|
62804
|
-
agent: input.legacyAgentReplyReadiness
|
|
62805
|
-
} };
|
|
62833
|
+
return buildLocalServiceDiagnosticsPayload({
|
|
62834
|
+
deviceEvidence: input.deviceReplyReadiness,
|
|
62835
|
+
agentEvidence: input.legacyAgentReplyReadiness
|
|
62836
|
+
});
|
|
62806
62837
|
}
|
|
62807
62838
|
function formatRuntimeReportSubmission(submission) {
|
|
62808
62839
|
switch (submission.status) {
|
|
@@ -63407,7 +63438,7 @@ async function runProfileCreate(input) {
|
|
|
63407
63438
|
presenter,
|
|
63408
63439
|
profile: created,
|
|
63409
63440
|
agentRuntimeState: await resolveAgentProfileRuntimeState(created),
|
|
63410
|
-
selectionResult: await setSelectedAtsProfileId(created.atsProfileId),
|
|
63441
|
+
selectionResult: runtime.resolvedView === "human" ? await setSelectedAtsProfileId(created.atsProfileId) : null,
|
|
63411
63442
|
setupResult: draft.setupResult
|
|
63412
63443
|
});
|
|
63413
63444
|
}
|
|
@@ -63493,6 +63524,7 @@ async function resolveProfileCreateLocalAgentSelection(input) {
|
|
|
63493
63524
|
}
|
|
63494
63525
|
async function emitProfileCreateResult(input) {
|
|
63495
63526
|
if (input.runtime.resolvedView === "human") {
|
|
63527
|
+
if (!input.selectionResult) throw new Error("profile.create selection result missing in human view");
|
|
63496
63528
|
renderProfileReadyCard({
|
|
63497
63529
|
presenter: input.presenter,
|
|
63498
63530
|
profile: input.profile,
|
|
@@ -63523,7 +63555,9 @@ async function emitProfileCreateResult(input) {
|
|
|
63523
63555
|
profileKind: input.profile.profileKind,
|
|
63524
63556
|
ownerUserId: input.profile.ownerUserId,
|
|
63525
63557
|
...buildAgentProfileStateData(input.profile),
|
|
63526
|
-
...buildAgentProfileRuntimeData(input.agentRuntimeState)
|
|
63558
|
+
...buildAgentProfileRuntimeData(input.agentRuntimeState),
|
|
63559
|
+
currentProfileChanged: false,
|
|
63560
|
+
nextSteps: buildAgentCreateNextSteps(input.profile)
|
|
63527
63561
|
}
|
|
63528
63562
|
});
|
|
63529
63563
|
await emitProfileCreateAgentSetupHint({
|
|
@@ -63533,26 +63567,15 @@ async function emitProfileCreateResult(input) {
|
|
|
63533
63567
|
setupResult: input.setupResult
|
|
63534
63568
|
});
|
|
63535
63569
|
input.presenter.line({
|
|
63536
|
-
code: "profile.
|
|
63537
|
-
text:
|
|
63570
|
+
code: "profile.selection_unchanged",
|
|
63571
|
+
text: `created profile ${input.profile.atsProfileId}; current profile was not changed`,
|
|
63538
63572
|
data: {
|
|
63539
|
-
|
|
63540
|
-
|
|
63541
|
-
|
|
63542
|
-
profileHandle: input.profile.profileHandle,
|
|
63543
|
-
profileKind: input.profile.profileKind,
|
|
63544
|
-
ownerUserId: input.profile.ownerUserId,
|
|
63545
|
-
...buildAgentProfileStateData(input.profile),
|
|
63546
|
-
...buildAgentProfileRuntimeData(input.agentRuntimeState),
|
|
63573
|
+
createdProfileId: input.profile.atsProfileId,
|
|
63574
|
+
currentProfileChanged: false,
|
|
63575
|
+
reason: "Agent View profile creation does not change the acting identity. Pass --profile explicitly when this profile should act.",
|
|
63547
63576
|
nextSteps: buildAgentCreateNextSteps(input.profile)
|
|
63548
63577
|
}
|
|
63549
63578
|
});
|
|
63550
|
-
emitNonPersistentSelectionWarning({
|
|
63551
|
-
runtime: input.runtime,
|
|
63552
|
-
presenter: input.presenter,
|
|
63553
|
-
selectionPersistent: input.selectionResult.persistent,
|
|
63554
|
-
runtimeSessionSource: input.selectionResult.runtimeSessionSource
|
|
63555
|
-
});
|
|
63556
63579
|
}
|
|
63557
63580
|
function emitProfileCreateAgentSetupHint(input) {
|
|
63558
63581
|
if (!input.setupResult || input.setupResult.status === "configured") return;
|
|
@@ -66423,7 +66446,7 @@ function buildHumanTraceRows(input) {
|
|
|
66423
66446
|
},
|
|
66424
66447
|
{
|
|
66425
66448
|
label: "Next",
|
|
66426
|
-
value: formatAtsCliCommand("ats space history <space-id> --limit 20")
|
|
66449
|
+
value: formatAtsCliCommand("ats space history <space-id> --kind text --limit 20")
|
|
66427
66450
|
}
|
|
66428
66451
|
];
|
|
66429
66452
|
const rows = [
|
|
@@ -68178,7 +68201,7 @@ const SUMMARY_BY_COMMAND = {
|
|
|
68178
68201
|
join: "Use `ats space join --view agent` with an explicit space ID to connect deterministically.",
|
|
68179
68202
|
watch: "Use `ats space watch --view agent` with an explicit space ID to read space activity deterministically.",
|
|
68180
68203
|
send: "Use `ats space send --view agent` with an explicit space ID and explicit message input.",
|
|
68181
|
-
history: "Use `ats space history --view agent` with an explicit space ID
|
|
68204
|
+
history: "Use `ats space history --kind text --brief --view agent` with an explicit space ID for conversation context. Use `--json` only when you need signal envelopes plus `messageReadProjection`.",
|
|
68182
68205
|
contract: "Use `ats space contract --view agent` with an explicit space ID to read the current space contract deterministically.",
|
|
68183
68206
|
contract_set: "Use `ats space contract set --view agent` with an explicit space ID and explicit patch flags to update the current space contract deterministically.",
|
|
68184
68207
|
status: "Use `ats space status --view agent` with an explicit space ID to read the current space status deterministically.",
|
|
@@ -68238,10 +68261,20 @@ function buildSpaceAgentOverviewPayload(command) {
|
|
|
68238
68261
|
commands: guide.agentCommands ?? [],
|
|
68239
68262
|
stages: STAGES_BY_COMMAND[command],
|
|
68240
68263
|
notes: guide.notes ?? [],
|
|
68241
|
-
humanActionRequired: {
|
|
68242
|
-
|
|
68243
|
-
|
|
68244
|
-
}
|
|
68264
|
+
humanActionRequired: resolveSpaceAgentOverviewHumanActionRequired({
|
|
68265
|
+
command,
|
|
68266
|
+
humanSteps: guide.humanSteps ?? []
|
|
68267
|
+
})
|
|
68268
|
+
};
|
|
68269
|
+
}
|
|
68270
|
+
function resolveSpaceAgentOverviewHumanActionRequired(input) {
|
|
68271
|
+
if (input.command !== "delete") return {
|
|
68272
|
+
possible: false,
|
|
68273
|
+
steps: []
|
|
68274
|
+
};
|
|
68275
|
+
return {
|
|
68276
|
+
possible: input.humanSteps.length > 0,
|
|
68277
|
+
steps: input.humanSteps
|
|
68245
68278
|
};
|
|
68246
68279
|
}
|
|
68247
68280
|
function resolveGuide$1(command) {
|
|
@@ -74727,7 +74760,10 @@ async function emitSpaceCommandPreflight(input) {
|
|
|
74727
74760
|
profileName: input.profile.profileName,
|
|
74728
74761
|
profileKind: input.profile.profileKind
|
|
74729
74762
|
},
|
|
74730
|
-
agentReplyReadiness: toSpacePreflightAgentReplyReadiness(
|
|
74763
|
+
agentReplyReadiness: toSpacePreflightAgentReplyReadiness({
|
|
74764
|
+
command: input.command,
|
|
74765
|
+
readiness: replyReadinessSnapshot.agentReplyReadiness
|
|
74766
|
+
}),
|
|
74731
74767
|
services: { daemon: {
|
|
74732
74768
|
installed: replyReadinessSnapshot.daemonStatus.installed,
|
|
74733
74769
|
version: replyReadinessSnapshot.daemonStatus.installed ? replyReadinessSnapshot.daemonStatus.state.daemonVersion : null,
|
|
@@ -74898,13 +74934,17 @@ function resolveSpacePreflightRepairReason(serviceParticipationReadiness) {
|
|
|
74898
74934
|
}
|
|
74899
74935
|
}
|
|
74900
74936
|
function toSpacePreflightAgentReplyReadiness(input) {
|
|
74901
|
-
if (!input) return null;
|
|
74937
|
+
if (!shouldIncludeWakeReadinessInSpacePreflight(input.command)) return null;
|
|
74938
|
+
if (!input.readiness) return null;
|
|
74902
74939
|
return {
|
|
74903
|
-
reasonCodes: input.reasonCodes,
|
|
74904
|
-
reasonText: input.reasonText,
|
|
74905
|
-
replyReadiness: input.replyReadiness
|
|
74940
|
+
reasonCodes: input.readiness.reasonCodes,
|
|
74941
|
+
reasonText: input.readiness.reasonText,
|
|
74942
|
+
replyReadiness: input.readiness.replyReadiness
|
|
74906
74943
|
};
|
|
74907
74944
|
}
|
|
74945
|
+
function shouldIncludeWakeReadinessInSpacePreflight(command) {
|
|
74946
|
+
return command === "join";
|
|
74947
|
+
}
|
|
74908
74948
|
function emitSpacePreflightRepairGuidance(input) {
|
|
74909
74949
|
if (!input.guidance || input.mode === "suppress") return;
|
|
74910
74950
|
input.presenter.line({
|
|
@@ -74920,7 +74960,7 @@ function shouldEmitSpaceCommandPreflightOutput(emitOutput) {
|
|
|
74920
74960
|
return emitOutput !== false;
|
|
74921
74961
|
}
|
|
74922
74962
|
function emitSpaceFailureNextStep(input) {
|
|
74923
|
-
const guidance = resolveSpaceFailureGuidance(input.error);
|
|
74963
|
+
const guidance = resolveSpaceFailureGuidance(input.error, { command: input.command });
|
|
74924
74964
|
if (!guidance) return;
|
|
74925
74965
|
input.presenter.line({
|
|
74926
74966
|
code: `space.${input.command}.next_step`,
|
|
@@ -74931,7 +74971,7 @@ function emitSpaceFailureNextStep(input) {
|
|
|
74931
74971
|
}
|
|
74932
74972
|
});
|
|
74933
74973
|
}
|
|
74934
|
-
function resolveSpaceFailureGuidance(error) {
|
|
74974
|
+
function resolveSpaceFailureGuidance(error, options = {}) {
|
|
74935
74975
|
const message = toErrorMessage$7(error);
|
|
74936
74976
|
const lowered = message.toLowerCase();
|
|
74937
74977
|
const localErrorCode = readErrorCode(error);
|
|
@@ -75016,6 +75056,7 @@ function resolveSpaceFailureGuidance(error) {
|
|
|
75016
75056
|
}
|
|
75017
75057
|
if (lowered.includes("network.timeout") || lowered.includes("timed out") || lowered.includes("upstream_unreachable") || lowered.includes("gateway is unreachable") || lowered.includes("can't reach the gateway")) return resolveGatewayUnavailableFailureGuidance({
|
|
75018
75058
|
code,
|
|
75059
|
+
command: options.command,
|
|
75019
75060
|
message,
|
|
75020
75061
|
parsedHttpError,
|
|
75021
75062
|
status
|
|
@@ -75023,6 +75064,11 @@ function resolveSpaceFailureGuidance(error) {
|
|
|
75023
75064
|
return null;
|
|
75024
75065
|
}
|
|
75025
75066
|
function resolveGatewayUnavailableFailureGuidance(input) {
|
|
75067
|
+
if (input.command === "send") return {
|
|
75068
|
+
reason: "space_send_timeout_uncertain",
|
|
75069
|
+
summary: "the send request timed out before ATS could confirm the result. Check recent text history before retrying so you do not duplicate a message.",
|
|
75070
|
+
steps: [formatAtsCliCommand("ats space history <space-id> --kind text --limit 20 --view agent")]
|
|
75071
|
+
};
|
|
75026
75072
|
const failureKind = classifyGatewayChainFailure({
|
|
75027
75073
|
code: input.code,
|
|
75028
75074
|
message: resolveGatewayFailureMessage(input),
|
|
@@ -83300,9 +83346,18 @@ async function runSend(input) {
|
|
|
83300
83346
|
};
|
|
83301
83347
|
const text = sanitizeText(input.text);
|
|
83302
83348
|
if (!text.ok) throw new Error(text.reason);
|
|
83349
|
+
emitAgentSendProgress({
|
|
83350
|
+
presenter,
|
|
83351
|
+
resolvedView: runtime.resolvedView,
|
|
83352
|
+
stage: "prepare_message",
|
|
83353
|
+
summary: "Preparing message text and canonical Space mentions.",
|
|
83354
|
+
spaceId: space
|
|
83355
|
+
});
|
|
83303
83356
|
const { outboundMessageEnvelope, outboundText } = await resolveOutboundSubmission({
|
|
83304
83357
|
atsProfile,
|
|
83305
83358
|
password: input.password,
|
|
83359
|
+
presenter,
|
|
83360
|
+
resolvedView: runtime.resolvedView,
|
|
83306
83361
|
space,
|
|
83307
83362
|
spaceApi,
|
|
83308
83363
|
text: text.value
|
|
@@ -83318,6 +83373,13 @@ async function runSend(input) {
|
|
|
83318
83373
|
});
|
|
83319
83374
|
const requestContext = buildAtsRequestContextFromProfile({ atsProfile });
|
|
83320
83375
|
const clientMessageId = crypto.randomUUID();
|
|
83376
|
+
emitAgentSendProgress({
|
|
83377
|
+
presenter,
|
|
83378
|
+
resolvedView: runtime.resolvedView,
|
|
83379
|
+
stage: "post_message",
|
|
83380
|
+
summary: "Posting the Space message through ATS Gateway.",
|
|
83381
|
+
spaceId: space
|
|
83382
|
+
});
|
|
83321
83383
|
const payload = await spaceApi.postNormalMessage({
|
|
83322
83384
|
spaceId: space,
|
|
83323
83385
|
requestContext,
|
|
@@ -83342,6 +83404,13 @@ async function resolveOutboundSubmission(input) {
|
|
|
83342
83404
|
rethrowCanonicalMentionSnapshotLoadFailure(error);
|
|
83343
83405
|
},
|
|
83344
83406
|
loadMembersSnapshot: async () => {
|
|
83407
|
+
emitAgentSendProgress({
|
|
83408
|
+
presenter: input.presenter,
|
|
83409
|
+
resolvedView: input.resolvedView,
|
|
83410
|
+
stage: "load_members",
|
|
83411
|
+
summary: "Loading current Space members to resolve canonical mentions.",
|
|
83412
|
+
spaceId: input.space
|
|
83413
|
+
});
|
|
83345
83414
|
const requestContext = buildAtsRequestContextFromProfile({ atsProfile: input.atsProfile });
|
|
83346
83415
|
return await input.spaceApi.getMembersSnapshot({
|
|
83347
83416
|
requestContext,
|
|
@@ -83356,6 +83425,17 @@ async function resolveOutboundSubmission(input) {
|
|
|
83356
83425
|
outboundText: preparedSubmission.outboundText
|
|
83357
83426
|
};
|
|
83358
83427
|
}
|
|
83428
|
+
function emitAgentSendProgress(input) {
|
|
83429
|
+
if (input.resolvedView !== "agent") return;
|
|
83430
|
+
input.presenter.line({
|
|
83431
|
+
code: "send.progress",
|
|
83432
|
+
text: `${input.stage}: ${input.summary}`,
|
|
83433
|
+
data: {
|
|
83434
|
+
spaceId: input.spaceId,
|
|
83435
|
+
stage: input.stage
|
|
83436
|
+
}
|
|
83437
|
+
});
|
|
83438
|
+
}
|
|
83359
83439
|
|
|
83360
83440
|
//#endregion
|
|
83361
83441
|
//#region src/space/send-input.ts
|
|
@@ -83644,7 +83724,17 @@ async function runSpaceCreate(input) {
|
|
|
83644
83724
|
}).catch((error) => {
|
|
83645
83725
|
contextPresenter.event("info", "connect.warn.profile_space_history_sync_failed", { error: toErrorMessage$2(error) });
|
|
83646
83726
|
});
|
|
83647
|
-
|
|
83727
|
+
const joinNow = isHumanInteractiveSpaceRuntime(contextRuntime) ? Boolean(createInput.value.joinInput) : await resolveJoinAfterCreate(createInput.value.joinInput, contextInteractive);
|
|
83728
|
+
if (contextRuntime.resolvedView === "agent") {
|
|
83729
|
+
emitSpaceCreateAgentFollowUp({
|
|
83730
|
+
presenter: contextPresenter,
|
|
83731
|
+
profileId: atsProfile.atsProfileId,
|
|
83732
|
+
spaceId: parsed.spaceId,
|
|
83733
|
+
joinRequested: joinNow
|
|
83734
|
+
});
|
|
83735
|
+
return "completed";
|
|
83736
|
+
}
|
|
83737
|
+
if (!joinNow) return "completed";
|
|
83648
83738
|
return await runSpaceJoin(buildPostCreateJoinRequest({
|
|
83649
83739
|
atsProfileId: atsProfile.atsProfileId,
|
|
83650
83740
|
baseUrl,
|
|
@@ -83669,6 +83759,20 @@ async function runSpaceCreate(input) {
|
|
|
83669
83759
|
throw error;
|
|
83670
83760
|
}
|
|
83671
83761
|
}
|
|
83762
|
+
function emitSpaceCreateAgentFollowUp(input) {
|
|
83763
|
+
const historyCommand = formatAtsCliCommand(`ats space history ${input.spaceId} --profile ${input.profileId} --kind text --brief --limit 20 --view agent`);
|
|
83764
|
+
const sendCommand = formatAtsCliCommand(`ats space send ${input.spaceId} --profile ${input.profileId} "hello" --view agent`);
|
|
83765
|
+
input.presenter.data({
|
|
83766
|
+
code: "space.create.next_commands",
|
|
83767
|
+
payload: {
|
|
83768
|
+
spaceId: input.spaceId,
|
|
83769
|
+
joinRequested: input.joinRequested,
|
|
83770
|
+
joinedByCreate: true,
|
|
83771
|
+
note: "Agent View create returns after creating the Space. Use explicit follow-up commands instead of opening a long-running join session.",
|
|
83772
|
+
nextCommands: [historyCommand, sendCommand]
|
|
83773
|
+
}
|
|
83774
|
+
});
|
|
83775
|
+
}
|
|
83672
83776
|
async function syncProfileSpaceHistoryForCreate(input) {
|
|
83673
83777
|
const gatewayHost = resolveGatewayHost(input.baseUrl);
|
|
83674
83778
|
if (!gatewayHost) return;
|
|
@@ -84498,7 +84602,7 @@ function buildSpaceListProofPayload() {
|
|
|
84498
84602
|
wakeExecutionSucceeded: "not_checked",
|
|
84499
84603
|
proves: "This command proves known Space records are visible to the acting profile.",
|
|
84500
84604
|
doesNotProve: "It does not prove conversation history is readable, members are wake-ready, or a Wake produced a visible reply.",
|
|
84501
|
-
nextChecks: ["<ATS_CLI> space history <space-id> --brief --limit 20 --view agent", "<ATS_CLI> space status <space-id> --json --view agent"]
|
|
84605
|
+
nextChecks: ["<ATS_CLI> space history <space-id> --kind text --brief --limit 20 --view agent", "<ATS_CLI> space status <space-id> --json --view agent"]
|
|
84502
84606
|
};
|
|
84503
84607
|
}
|
|
84504
84608
|
async function runSpaceAddMembers(input) {
|
|
@@ -84717,6 +84821,13 @@ async function runSpaceAddMembersForTarget(input) {
|
|
|
84717
84821
|
authenticatedGatewayUrl: input.authenticatedGatewayUrl
|
|
84718
84822
|
});
|
|
84719
84823
|
if (!authenticatedGatewayUrl) return { status: "cancelled" };
|
|
84824
|
+
emitAgentSpaceAddMembersProgress({
|
|
84825
|
+
presenter: input.presenter,
|
|
84826
|
+
resolvedView: input.runtime.resolvedView,
|
|
84827
|
+
spaceId: input.target.space,
|
|
84828
|
+
stage: "resolve_candidates",
|
|
84829
|
+
summary: "Reading selectable profiles for this Space."
|
|
84830
|
+
});
|
|
84720
84831
|
const candidates = await resolveSpaceMemberCandidatesForAdd({
|
|
84721
84832
|
currentProfile: input.atsProfile,
|
|
84722
84833
|
currentOwnerUserId: input.atsProfile.ownerUserId,
|
|
@@ -84754,6 +84865,14 @@ async function runSpaceAddMembersForTarget(input) {
|
|
|
84754
84865
|
selectedProfileIds
|
|
84755
84866
|
});
|
|
84756
84867
|
if (selectedCandidates.length === 0) return { status: "completed" };
|
|
84868
|
+
emitAgentSpaceAddMembersProgress({
|
|
84869
|
+
presenter: input.presenter,
|
|
84870
|
+
resolvedView: input.runtime.resolvedView,
|
|
84871
|
+
spaceId: input.target.space,
|
|
84872
|
+
stage: "prepare_local_participation",
|
|
84873
|
+
summary: "Checking selected profiles before adding them to the Space.",
|
|
84874
|
+
profileIds: selectedCandidates.map((candidate) => candidate.profileId)
|
|
84875
|
+
});
|
|
84757
84876
|
const servicePreparationResult = await ensureSpaceMemberCandidatesLocalParticipationReady({
|
|
84758
84877
|
atsProfile: input.atsProfile,
|
|
84759
84878
|
candidates: selectedCandidates,
|
|
@@ -84767,6 +84886,14 @@ async function runSpaceAddMembersForTarget(input) {
|
|
|
84767
84886
|
authenticatedGatewayUrl
|
|
84768
84887
|
} : { status: "cancelled" };
|
|
84769
84888
|
const preparedCandidates = servicePreparationResult.candidates;
|
|
84889
|
+
emitAgentSpaceAddMembersProgress({
|
|
84890
|
+
presenter: input.presenter,
|
|
84891
|
+
resolvedView: input.runtime.resolvedView,
|
|
84892
|
+
spaceId: input.target.space,
|
|
84893
|
+
stage: "add_members",
|
|
84894
|
+
summary: "Adding selected profiles to the Space.",
|
|
84895
|
+
profileIds: preparedCandidates.map((candidate) => candidate.profileId)
|
|
84896
|
+
});
|
|
84770
84897
|
const result = await applySpaceAddMembers({
|
|
84771
84898
|
actorProfile: input.atsProfile,
|
|
84772
84899
|
candidates: preparedCandidates,
|
|
@@ -84775,6 +84902,14 @@ async function runSpaceAddMembersForTarget(input) {
|
|
|
84775
84902
|
baseUrl: targetBaseUrl,
|
|
84776
84903
|
password: input.password
|
|
84777
84904
|
});
|
|
84905
|
+
emitAgentSpaceAddMembersProgress({
|
|
84906
|
+
presenter: input.presenter,
|
|
84907
|
+
resolvedView: input.runtime.resolvedView,
|
|
84908
|
+
spaceId: input.target.space,
|
|
84909
|
+
stage: "record_join_notices",
|
|
84910
|
+
summary: "Recording visible join notices for newly added members.",
|
|
84911
|
+
profileIds: result.added.map((candidate) => candidate.profileId)
|
|
84912
|
+
});
|
|
84778
84913
|
const joinNoticeSummary = await persistSpaceAddMembersJoinNotices({
|
|
84779
84914
|
actorProfile: input.atsProfile,
|
|
84780
84915
|
baseUrl: targetBaseUrl,
|
|
@@ -84804,6 +84939,18 @@ async function runSpaceAddMembersForTarget(input) {
|
|
|
84804
84939
|
});
|
|
84805
84940
|
return { status: "completed" };
|
|
84806
84941
|
}
|
|
84942
|
+
function emitAgentSpaceAddMembersProgress(input) {
|
|
84943
|
+
if (input.resolvedView !== "agent") return;
|
|
84944
|
+
input.presenter.line({
|
|
84945
|
+
code: "space.add_members.progress",
|
|
84946
|
+
text: `${input.stage}: ${input.summary}`,
|
|
84947
|
+
data: {
|
|
84948
|
+
stage: input.stage,
|
|
84949
|
+
spaceId: input.spaceId,
|
|
84950
|
+
...input.profileIds ? { profileIds: input.profileIds } : {}
|
|
84951
|
+
}
|
|
84952
|
+
});
|
|
84953
|
+
}
|
|
84807
84954
|
async function runSpaceRemoveMembersForTarget(input) {
|
|
84808
84955
|
const targetBaseUrl = input.hasExplicitBaseUrlInput ? input.baseUrl : input.target.baseUrl ?? input.baseUrl;
|
|
84809
84956
|
const authenticatedGatewayUrl = await ensureSpaceCommandGatewayAuthenticationOrCancel({
|
|
@@ -98026,12 +98173,12 @@ function resolveSpaceHintByMessage(message) {
|
|
|
98026
98173
|
commandPrefix: "ats space send"
|
|
98027
98174
|
})) return [
|
|
98028
98175
|
"ats space send <space-id> \"hello world\"",
|
|
98029
|
-
"ats space history <space-id> --limit 20",
|
|
98176
|
+
"ats space history <space-id> --kind text --limit 20",
|
|
98030
98177
|
"ats space join <space-id>"
|
|
98031
98178
|
];
|
|
98032
98179
|
if (message.includes("agent role is required for this space; pass --role <text>") || message.includes("agent roleInstructions is required for this space; pass --role-instructions <text>")) return [
|
|
98033
98180
|
"ats space join <space-id> --role <text> --role-instructions <text>",
|
|
98034
|
-
"ats space history <space-id> --limit 20",
|
|
98181
|
+
"ats space history <space-id> --kind text --limit 20",
|
|
98035
98182
|
"ats space watch <space-id>"
|
|
98036
98183
|
];
|
|
98037
98184
|
if (includesMissingRequiredArgumentMessage(message, {
|
|
@@ -98039,7 +98186,7 @@ function resolveSpaceHintByMessage(message) {
|
|
|
98039
98186
|
commandPrefix: "ats space"
|
|
98040
98187
|
})) return [
|
|
98041
98188
|
"ats --view human space",
|
|
98042
|
-
"ats space history <space-id>",
|
|
98189
|
+
"ats space history <space-id> --kind text",
|
|
98043
98190
|
"ats space join <space-id>"
|
|
98044
98191
|
];
|
|
98045
98192
|
return null;
|