crewly 1.20.264 → 1.20.266
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/config/skills/agent/core/docs-comment/SKILL.md +6 -3
- package/config/skills/agent/core/docs-comment/execute.sh +1 -1
- package/config/skills/agent/core/gmail-send/SKILL.md +4 -0
- package/config/skills/agent/core/gmail-send/execute.sh +1 -1
- package/config/skills/agent/core/gmail-send/execute.test.sh +11 -0
- package/config/skills/agent/core/slack-file/SKILL.md +53 -0
- package/config/skills/agent/core/slack-file/execute.sh +72 -0
- package/config/skills/agent/core/slack-file/execute.test.sh +34 -0
- package/dist/backend/backend/src/constants.d.ts +77 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +77 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/connector/connector.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/connector/connector.routes.js +6 -1
- package/dist/backend/backend/src/controllers/connector/connector.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/connector/remote-mcp-proxy.controller.d.ts +69 -0
- package/dist/backend/backend/src/controllers/connector/remote-mcp-proxy.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/connector/remote-mcp-proxy.controller.js +203 -0
- package/dist/backend/backend/src/controllers/connector/remote-mcp-proxy.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/connector/remote-mcp.controller.d.ts +16 -0
- package/dist/backend/backend/src/controllers/connector/remote-mcp.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/connector/remote-mcp.controller.js +126 -5
- package/dist/backend/backend/src/controllers/connector/remote-mcp.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google-connect-card.d.ts +12 -1
- package/dist/backend/backend/src/controllers/google/google-connect-card.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google-connect-card.js +28 -10
- package/dist/backend/backend/src/controllers/google/google-connect-card.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts +26 -2
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +123 -33
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +37 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +15 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +4 -3
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/connector/remote-mcp-auth-card.d.ts +43 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth-card.d.ts.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth-card.js +98 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth-card.js.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth.service.d.ts +277 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth.service.js +719 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-auth.service.js.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-launch.service.d.ts +29 -5
- package/dist/backend/backend/src/services/connector/remote-mcp-launch.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/connector/remote-mcp-launch.service.js +40 -12
- package/dist/backend/backend/src/services/connector/remote-mcp-launch.service.js.map +1 -1
- package/dist/backend/backend/src/services/connector/remote-mcp-oauth.d.ts +196 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-oauth.d.ts.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-oauth.js +351 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-oauth.js.map +1 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-probe.service.d.ts +3 -1
- package/dist/backend/backend/src/services/connector/remote-mcp-probe.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/connector/remote-mcp-probe.service.js +8 -0
- package/dist/backend/backend/src/services/connector/remote-mcp-probe.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/credential-files.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/credential-files.js +2 -0
- package/dist/backend/backend/src/services/core/credential-files.js.map +1 -1
- package/dist/backend/backend/src/services/google/docs-comments.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/docs-comments.service.js +4 -1
- package/dist/backend/backend/src/services/google/docs-comments.service.js.map +1 -1
- package/dist/backend/backend/src/services/google/google-api.client.d.ts +16 -0
- package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/google-api.client.js +44 -0
- package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -1
- package/dist/backend/backend/src/services/google/google-reauth-notifier.service.d.ts +159 -0
- package/dist/backend/backend/src/services/google/google-reauth-notifier.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/google/google-reauth-notifier.service.js +283 -0
- package/dist/backend/backend/src/services/google/google-reauth-notifier.service.js.map +1 -0
- package/dist/backend/backend/src/services/google/google-reauth.wiring.d.ts +71 -0
- package/dist/backend/backend/src/services/google/google-reauth.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/google/google-reauth.wiring.js +132 -0
- package/dist/backend/backend/src/services/google/google-reauth.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +28 -10
- package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/google-workspace-token.service.js +24 -11
- package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-file-fetch.service.d.ts +119 -0
- package/dist/backend/backend/src/services/slack/slack-file-fetch.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-file-fetch.service.js +415 -0
- package/dist/backend/backend/src/services/slack/slack-file-fetch.service.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-file-ref.d.ts +69 -0
- package/dist/backend/backend/src/services/slack/slack-file-ref.d.ts.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-file-ref.js +177 -0
- package/dist/backend/backend/src/services/slack/slack-file-ref.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +16 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +15 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +84 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +2 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +3 -1
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/types/slack.types.d.ts +11 -0
- package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/slack.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +77 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +77 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +2 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/connector/remote-mcp-launch.service.d.ts +29 -5
- package/dist/cli/backend/src/services/connector/remote-mcp-launch.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/connector/remote-mcp-launch.service.js +40 -12
- package/dist/cli/backend/src/services/connector/remote-mcp-launch.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/credential-files.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/credential-files.js +2 -0
- package/dist/cli/backend/src/services/core/credential-files.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-file-fetch.service.d.ts +119 -0
- package/dist/cli/backend/src/services/slack/slack-file-fetch.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-file-fetch.service.js +415 -0
- package/dist/cli/backend/src/services/slack/slack-file-fetch.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-file-ref.d.ts +69 -0
- package/dist/cli/backend/src/services/slack/slack-file-ref.d.ts.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-file-ref.js +177 -0
- package/dist/cli/backend/src/services/slack/slack-file-ref.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +15 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +84 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts +2 -1
- package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack.service.js +3 -1
- package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/backend/src/types/slack.types.d.ts +11 -0
- package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/slack.types.js.map +1 -1
- package/frontend/dist/assets/{index-83188f0b.js → index-7e5ebf78.js} +111 -111
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google reconnect cards — wiring with the real Slack, Cloud and agents.
|
|
3
|
+
*
|
|
4
|
+
* Kept apart from the notifier so its rules (throttle, wording, when a
|
|
5
|
+
* reconnect counts) are testable without Slack. Everything here runs on the
|
|
6
|
+
* machine where the Google call failed: its Slack transport posts the card,
|
|
7
|
+
* its Cloud session mints the ticket, its agents are told to retry. That is
|
|
8
|
+
* the same on every machine, so an agent on a second machine (the Personal
|
|
9
|
+
* Assistant on iriss-air, 2026-10-08) gets the same card as one on the main
|
|
10
|
+
* Mac.
|
|
11
|
+
*
|
|
12
|
+
* @module services/google/google-reauth.wiring
|
|
13
|
+
*/
|
|
14
|
+
import { LoggerService } from '../core/logger.service.js';
|
|
15
|
+
import { getSlackService } from '../slack/slack.service.js';
|
|
16
|
+
import { getSlackAgentDmService } from '../slack/slack-agent-dm.service.js';
|
|
17
|
+
import { getSlackAgentIdentityService } from '../slack/slack-agent-identity.service.js';
|
|
18
|
+
import { GoogleWorkspaceTokenService } from './google-workspace-token.service.js';
|
|
19
|
+
import { GoogleReauthNotifier } from './google-reauth-notifier.service.js';
|
|
20
|
+
const logger = LoggerService.getInstance().createComponentLogger('GoogleReauthWiring');
|
|
21
|
+
/**
|
|
22
|
+
* A Slack DM channel id. DMs are private to the owner and the bot, so a
|
|
23
|
+
* card there can be an ordinary message — which, unlike an ephemeral one,
|
|
24
|
+
* reaches the owner's phone as a notification and survives a reload.
|
|
25
|
+
*
|
|
26
|
+
* @param channelId - Slack channel id
|
|
27
|
+
* @returns True for `D…`
|
|
28
|
+
*/
|
|
29
|
+
export function isDirectMessage(channelId) {
|
|
30
|
+
return channelId.startsWith('D');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the notifier's collaborators.
|
|
34
|
+
*
|
|
35
|
+
* @param input - Process hooks and test seams
|
|
36
|
+
* @returns Notifier deps
|
|
37
|
+
*/
|
|
38
|
+
export function createReauthNotifierDeps(input) {
|
|
39
|
+
const slack = input.slack ?? (() => getSlackService());
|
|
40
|
+
const botTokenOf = input.agentBotToken ?? ((session) => getSlackAgentIdentityService()?.getInstalled(session)?.botToken);
|
|
41
|
+
const agentDm = input.agentDm ??
|
|
42
|
+
((session) => {
|
|
43
|
+
const link = getSlackAgentDmService()?.findByAgentSession(session);
|
|
44
|
+
return link ? { slackChannelId: link.slackChannelId } : null;
|
|
45
|
+
});
|
|
46
|
+
const workDestination = input.workDestination ??
|
|
47
|
+
(async (session) => {
|
|
48
|
+
const { resolveAgentSlackDestination } = await import('../orc/work-item-destination.wiring.js');
|
|
49
|
+
return resolveAgentSlackDestination(session);
|
|
50
|
+
});
|
|
51
|
+
const tokens = () => GoogleWorkspaceTokenService.getInstance();
|
|
52
|
+
/** The owner's DM with this bot. */
|
|
53
|
+
const ownerDm = async (owner, botToken) => {
|
|
54
|
+
const id = await slack().openDirectMessage(owner, botToken).catch(() => null);
|
|
55
|
+
return id ? { slackChannelId: id, ...(botToken ? { botToken } : {}) } : null;
|
|
56
|
+
};
|
|
57
|
+
/** One post attempt; a DM gets an ordinary message, a channel an ephemeral one. */
|
|
58
|
+
const postOnce = async (place, owner, text, blocks, botToken) => {
|
|
59
|
+
if (isDirectMessage(place.slackChannelId)) {
|
|
60
|
+
const ts = await slack()
|
|
61
|
+
.sendMessage({
|
|
62
|
+
channelId: place.slackChannelId,
|
|
63
|
+
text,
|
|
64
|
+
blocks: blocks,
|
|
65
|
+
...(place.threadTs ? { threadTs: place.threadTs } : {}),
|
|
66
|
+
...(botToken ? { botToken } : {}),
|
|
67
|
+
// A card is not conversation: keep it out of the chat mirror.
|
|
68
|
+
skipChatV2Mirror: true,
|
|
69
|
+
})
|
|
70
|
+
.catch(() => '');
|
|
71
|
+
return !!ts;
|
|
72
|
+
}
|
|
73
|
+
return slack()
|
|
74
|
+
.sendEphemeral(place.slackChannelId, owner, text, blocks, botToken, place.threadTs)
|
|
75
|
+
.catch(() => false);
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
ownerUserId: () => slack().getOwnerUserId?.() ?? null,
|
|
79
|
+
placeFor: async (session, owner) => {
|
|
80
|
+
const botToken = session ? botTokenOf(session) : undefined;
|
|
81
|
+
if (session) {
|
|
82
|
+
// Where the agent is working — but only a conversation, not a bare
|
|
83
|
+
// team channel: a card at the top of #team would reach nobody.
|
|
84
|
+
const work = await workDestination(session).catch(() => null);
|
|
85
|
+
if (work?.slackChannelId && (work.threadTs || isDirectMessage(work.slackChannelId))) {
|
|
86
|
+
return {
|
|
87
|
+
slackChannelId: work.slackChannelId,
|
|
88
|
+
...(work.threadTs ? { threadTs: work.threadTs } : {}),
|
|
89
|
+
...(botToken ? { botToken } : {}),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const dm = agentDm(session);
|
|
93
|
+
if (dm)
|
|
94
|
+
return { slackChannelId: dm.slackChannelId, ...(botToken ? { botToken } : {}) };
|
|
95
|
+
}
|
|
96
|
+
return ownerDm(owner, botToken);
|
|
97
|
+
},
|
|
98
|
+
connectUrl: (args) => tokens().buildSlackConnectUrl(args),
|
|
99
|
+
postCard: async (place, owner, text, blocks) => {
|
|
100
|
+
if (await postOnce(place, owner, text, blocks, place.botToken))
|
|
101
|
+
return true;
|
|
102
|
+
// The agent's own bot may not be in that conversation; the shared bot
|
|
103
|
+
// usually is.
|
|
104
|
+
if (place.botToken && (await postOnce(place, owner, text, blocks)))
|
|
105
|
+
return true;
|
|
106
|
+
if (isDirectMessage(place.slackChannelId))
|
|
107
|
+
return false;
|
|
108
|
+
// A channel thread refused it: the owner's DM still reaches the phone.
|
|
109
|
+
const dm = await ownerDm(owner, place.botToken);
|
|
110
|
+
if (dm && (await postOnce(dm, owner, text, blocks, dm.botToken)))
|
|
111
|
+
return true;
|
|
112
|
+
logger.warn('Could not post the Google reconnect card anywhere', { slackChannelId: place.slackChannelId });
|
|
113
|
+
return false;
|
|
114
|
+
},
|
|
115
|
+
status: () => tokens().status(),
|
|
116
|
+
clearTokenCache: (account) => tokens().clearCache(account),
|
|
117
|
+
tellAgent: input.sendToAgent,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Install the process-wide notifier. Called once Slack is up.
|
|
122
|
+
*
|
|
123
|
+
* @param input - Process hooks
|
|
124
|
+
* @returns The notifier
|
|
125
|
+
*/
|
|
126
|
+
export function startGoogleReauthNotifier(input) {
|
|
127
|
+
const notifier = new GoogleReauthNotifier(createReauthNotifierDeps(input));
|
|
128
|
+
GoogleReauthNotifier.setInstance(notifier);
|
|
129
|
+
logger.info('Google reconnect cards started');
|
|
130
|
+
return notifier;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=google-reauth.wiring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-reauth.wiring.js","sourceRoot":"","sources":["../../../../../../backend/src/services/google/google-reauth.wiring.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,12 @@ export interface GoogleConnection extends GrantOwnership {
|
|
|
33
33
|
/** Products the grant covers, derived by Cloud from the granted scopes. */
|
|
34
34
|
products: GoogleProduct[];
|
|
35
35
|
scopes: string[];
|
|
36
|
+
/**
|
|
37
|
+
* Optional scopes the grant lacks for products it covers (Cloud auth >=
|
|
38
|
+
* 1.10.9; absent on an older Cloud). E.g. `gmail.compose`: reads and sends
|
|
39
|
+
* work, drafts need a reconnect.
|
|
40
|
+
*/
|
|
41
|
+
missingScopes?: string[];
|
|
36
42
|
grantedAt: string;
|
|
37
43
|
/** True for the account used when a caller names none. */
|
|
38
44
|
isDefault: boolean;
|
|
@@ -55,18 +61,26 @@ export interface GoogleWorkspaceStatus {
|
|
|
55
61
|
* {@link GOOGLE_WORKSPACE_CONSTANTS.ERROR_CODES} (or `http_<n>` for anything
|
|
56
62
|
* unmapped), so the controller and the skills can branch without parsing text.
|
|
57
63
|
*/
|
|
64
|
+
/** Structured context on a {@link GoogleWorkspaceError}. */
|
|
65
|
+
export interface GoogleWorkspaceErrorDetails {
|
|
66
|
+
/** For `not_permitted`: who owns the grant (issue #968) */
|
|
67
|
+
authorizedBy?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Why, when the code alone is not enough: `insufficient_scope` (Google
|
|
70
|
+
* 403, the grant lacks a scope this call needs) or `grant_revoked` (the
|
|
71
|
+
* refresh token is dead — expired or revoked; Cloud deleted the grant).
|
|
72
|
+
*/
|
|
73
|
+
reason?: 'insufficient_scope' | 'grant_revoked';
|
|
74
|
+
/** Product the failing call was for */
|
|
75
|
+
product?: GoogleProduct;
|
|
76
|
+
/** Google account the failing call acted as, when known */
|
|
77
|
+
account?: string;
|
|
78
|
+
}
|
|
58
79
|
export declare class GoogleWorkspaceError extends Error {
|
|
59
80
|
readonly status: number;
|
|
60
81
|
readonly code: string;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
authorizedBy?: string;
|
|
64
|
-
} | undefined;
|
|
65
|
-
constructor(status: number, code: string, message: string,
|
|
66
|
-
/** For `not_permitted`: who owns the grant (issue #968) */
|
|
67
|
-
details?: {
|
|
68
|
-
authorizedBy?: string;
|
|
69
|
-
} | undefined);
|
|
82
|
+
readonly details?: GoogleWorkspaceErrorDetails | undefined;
|
|
83
|
+
constructor(status: number, code: string, message: string, details?: GoogleWorkspaceErrorDetails | undefined);
|
|
70
84
|
}
|
|
71
85
|
/**
|
|
72
86
|
* Map a Cloud workspace-endpoint failure to the status/code this instance
|
|
@@ -79,7 +93,9 @@ export declare class GoogleWorkspaceError extends Error {
|
|
|
79
93
|
* @param message - Human message from Cloud's body, if any
|
|
80
94
|
* @returns The error to throw
|
|
81
95
|
*/
|
|
82
|
-
export declare function mapCloudFailure(httpStatus: number, code: string | undefined, message: string | undefined
|
|
96
|
+
export declare function mapCloudFailure(httpStatus: number, code: string | undefined, message: string | undefined, details?: {
|
|
97
|
+
email?: unknown;
|
|
98
|
+
}): GoogleWorkspaceError;
|
|
83
99
|
/**
|
|
84
100
|
* Fetches, caches and refreshes the Google access token that Cloud mints
|
|
85
101
|
* from the owner's stored grant.
|
|
@@ -219,6 +235,8 @@ export declare class GoogleWorkspaceTokenService {
|
|
|
219
235
|
*/
|
|
220
236
|
buildSlackConnectUrl(options?: {
|
|
221
237
|
products?: readonly GoogleProduct[];
|
|
238
|
+
/** Google account to reconnect; Google preselects it (Cloud auth >= 1.10.9, ignored before). */
|
|
239
|
+
email?: string;
|
|
222
240
|
slackUserId?: string;
|
|
223
241
|
slackChannelId?: string;
|
|
224
242
|
slackThreadTs?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-workspace-token.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/google/google-workspace-token.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAgD,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAgE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAElJ,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B;IACzC,WAAW,IAAI,OAAO,CAAC;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,WAAW,+BAA+B;IAC9C,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,0FAA0F;AAC1F,gEAAgE;AAChE,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,cAAc,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"google-workspace-token.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/google/google-workspace-token.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,19 +17,11 @@ import { LoggerService } from '../core/logger.service.js';
|
|
|
17
17
|
import { GOOGLE_WORKSPACE_CONSTANTS, PEOPLE_CONSTANTS } from '../../constants.js';
|
|
18
18
|
import { actingForHeaders, actorCacheSuffix } from '../people/acting-for.service.js';
|
|
19
19
|
import { GOOGLE_PRODUCT_LABELS, notPermittedMessage, readNotPermitted } from '../people/grant-sharing.js';
|
|
20
|
-
/**
|
|
21
|
-
* Error raised for every Cloud / Google failure. `status` is the HTTP status
|
|
22
|
-
* the OSS controller should answer with and `code` is one of
|
|
23
|
-
* {@link GOOGLE_WORKSPACE_CONSTANTS.ERROR_CODES} (or `http_<n>` for anything
|
|
24
|
-
* unmapped), so the controller and the skills can branch without parsing text.
|
|
25
|
-
*/
|
|
26
20
|
export class GoogleWorkspaceError extends Error {
|
|
27
21
|
status;
|
|
28
22
|
code;
|
|
29
23
|
details;
|
|
30
|
-
constructor(status, code, message,
|
|
31
|
-
/** For `not_permitted`: who owns the grant (issue #968) */
|
|
32
|
-
details) {
|
|
24
|
+
constructor(status, code, message, details) {
|
|
33
25
|
super(message);
|
|
34
26
|
this.status = status;
|
|
35
27
|
this.code = code;
|
|
@@ -48,11 +40,22 @@ export class GoogleWorkspaceError extends Error {
|
|
|
48
40
|
* @param message - Human message from Cloud's body, if any
|
|
49
41
|
* @returns The error to throw
|
|
50
42
|
*/
|
|
51
|
-
export function mapCloudFailure(httpStatus, code, message) {
|
|
43
|
+
export function mapCloudFailure(httpStatus, code, message, details) {
|
|
52
44
|
const CODES = GOOGLE_WORKSPACE_CONSTANTS.ERROR_CODES;
|
|
53
45
|
if (httpStatus === 401 || httpStatus === 403) {
|
|
54
46
|
return new GoogleWorkspaceError(401, CODES.NOT_LOGGED_IN, 'Crewly Cloud session expired. Sign in to Crewly Cloud again.');
|
|
55
47
|
}
|
|
48
|
+
// Google refused the stored refresh token (expired or revoked) and Cloud
|
|
49
|
+
// deleted the grant. Still "not connected", but it was connected a moment
|
|
50
|
+
// ago — which is what lets the harness offer the owner a one-tap reconnect
|
|
51
|
+
// instead of a first-time setup.
|
|
52
|
+
if (code === 'grant_revoked') {
|
|
53
|
+
const account = typeof details?.email === 'string' && details.email ? details.email : undefined;
|
|
54
|
+
return new GoogleWorkspaceError(409, CODES.NOT_CONNECTED, 'Google access expired or was revoked; the owner must reconnect it.', {
|
|
55
|
+
reason: 'grant_revoked',
|
|
56
|
+
...(account ? { account } : {}),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
56
59
|
if (httpStatus === 404 || httpStatus === 409 || code === CODES.NOT_CONNECTED || code === 'grant_revoked') {
|
|
57
60
|
return new GoogleWorkspaceError(409, CODES.NOT_CONNECTED, 'Google Workspace is not connected for this Crewly Cloud account.');
|
|
58
61
|
}
|
|
@@ -283,6 +286,7 @@ export class GoogleWorkspaceTokenService {
|
|
|
283
286
|
async buildSlackConnectUrl(options = {}) {
|
|
284
287
|
return this.cloudRequest('POST', GOOGLE_WORKSPACE_CONSTANTS.CLOUD_ENDPOINTS.CONNECT_TICKET, {
|
|
285
288
|
...(options.products?.length ? { products: [...options.products] } : {}),
|
|
289
|
+
...(options.email ? { email: options.email } : {}),
|
|
286
290
|
...(options.slackUserId ? { slackUserId: options.slackUserId } : {}),
|
|
287
291
|
...(options.slackChannelId ? { slackChannelId: options.slackChannelId } : {}),
|
|
288
292
|
...(options.slackThreadTs ? { slackThreadTs: options.slackThreadTs } : {}),
|
|
@@ -353,6 +357,15 @@ export class GoogleWorkspaceTokenService {
|
|
|
353
357
|
const what = options.product ? GOOGLE_PRODUCT_LABELS[options.product] ?? 'Google account' : 'Google account';
|
|
354
358
|
throw new GoogleWorkspaceError(403, err.code, notPermittedMessage(what, err.details?.authorizedBy), err.details);
|
|
355
359
|
}
|
|
360
|
+
if (err instanceof GoogleWorkspaceError && err.details?.reason === 'grant_revoked') {
|
|
361
|
+
// Name what the call was for, so the reconnect card asks for it.
|
|
362
|
+
const account = err.details.account ?? options.account;
|
|
363
|
+
throw new GoogleWorkspaceError(err.status, err.code, err.message, {
|
|
364
|
+
...err.details,
|
|
365
|
+
...(options.product ? { product: options.product } : {}),
|
|
366
|
+
...(account ? { account } : {}),
|
|
367
|
+
});
|
|
368
|
+
}
|
|
356
369
|
throw err;
|
|
357
370
|
}
|
|
358
371
|
}
|
|
@@ -424,7 +437,7 @@ export class GoogleWorkspaceTokenService {
|
|
|
424
437
|
throw new GoogleWorkspaceError(501, PEOPLE_CONSTANTS.CLOUD_UPDATE_REQUIRED_CODE, PEOPLE_CONSTANTS.CLOUD_UPDATE_REQUIRED_MESSAGE);
|
|
425
438
|
}
|
|
426
439
|
if (!res.ok || parsed.success !== true) {
|
|
427
|
-
throw mapCloudFailure(res.status, parsed.code ?? parsed.error, parsed.error);
|
|
440
|
+
throw mapCloudFailure(res.status, parsed.code ?? parsed.error, parsed.error, parsed.details);
|
|
428
441
|
}
|
|
429
442
|
return (parsed.data ?? {});
|
|
430
443
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-workspace-token.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/google/google-workspace-token.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"google-workspace-token.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/google/google-workspace-token.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack file fetch — get a Slack file by link or id, even one your own bot
|
|
3
|
+
* cannot see.
|
|
4
|
+
*
|
|
5
|
+
* Slack serves a file only to members of a channel it was shared in. An
|
|
6
|
+
* agent asked to work on a colleague's file from another channel, often
|
|
7
|
+
* posted from another machine so the event never reached this one, had no
|
|
8
|
+
* way to open it. Rex asked Ella to "paste the text into the thread"
|
|
9
|
+
* instead (2026-10-08, `longform-en.md` in #pro-crewly-marketing).
|
|
10
|
+
*
|
|
11
|
+
* Order:
|
|
12
|
+
* 1. Locally, with the bot tokens this instance holds: the requesting
|
|
13
|
+
* agent's own bot, the uploader's bot, bots of agents in the channel,
|
|
14
|
+
* the workspace bot, then any other installed identity. The first one
|
|
15
|
+
* `files.info` answers for downloads the file.
|
|
16
|
+
* 2. Otherwise Crewly Cloud (`POST /api/cloud/slack/files/fetch`), which
|
|
17
|
+
* holds every bot of the account and tries them the same way.
|
|
18
|
+
*
|
|
19
|
+
* Files land in the same directory as inbound Slack attachments
|
|
20
|
+
* (`~/.crewly/tmp/slack-files/<id>-<name>`).
|
|
21
|
+
*
|
|
22
|
+
* @module services/slack/slack-file-fetch
|
|
23
|
+
*/
|
|
24
|
+
import { type SlackFileRef } from './slack-file-ref.js';
|
|
25
|
+
/** Stable failure codes (the route maps them to HTTP statuses). */
|
|
26
|
+
export type SlackFileGetErrorCode = 'validation' | 'not_visible' | 'no_file_in_message' | 'file_deleted' | 'too_large' | 'foreign_workspace' | 'cloud_unavailable' | 'slack_error';
|
|
27
|
+
/** HTTP status per code. */
|
|
28
|
+
export declare const SLACK_FILE_GET_STATUS: Record<SlackFileGetErrorCode, number>;
|
|
29
|
+
/** A failure with a stable code. */
|
|
30
|
+
export declare class SlackFileGetError extends Error {
|
|
31
|
+
readonly code: SlackFileGetErrorCode;
|
|
32
|
+
constructor(code: SlackFileGetErrorCode, message: string);
|
|
33
|
+
}
|
|
34
|
+
/** What the caller learns about a fetched file. */
|
|
35
|
+
export interface SlackFetchedFileMeta {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
mimetype: string;
|
|
39
|
+
size: number;
|
|
40
|
+
user: string | null;
|
|
41
|
+
channels: string[];
|
|
42
|
+
permalink: string | null;
|
|
43
|
+
isText: boolean;
|
|
44
|
+
/** Who could see it: `local:<session>`, `local:workspace`, or `cloud:<bot>`. */
|
|
45
|
+
via: string;
|
|
46
|
+
/** Other files on the same message (message links). */
|
|
47
|
+
otherFileIds?: string[];
|
|
48
|
+
}
|
|
49
|
+
/** A fetched file, saved on disk. */
|
|
50
|
+
export interface SlackFetchedFile {
|
|
51
|
+
meta: SlackFetchedFileMeta;
|
|
52
|
+
localPath: string;
|
|
53
|
+
}
|
|
54
|
+
/** One bot token this instance may try. */
|
|
55
|
+
export interface LocalTokenCandidate {
|
|
56
|
+
token: string;
|
|
57
|
+
/** For logs and the result: `<session>` or `workspace`. */
|
|
58
|
+
label: string;
|
|
59
|
+
}
|
|
60
|
+
/** Collaborators (injectable for tests). */
|
|
61
|
+
export interface SlackFileFetchDeps {
|
|
62
|
+
/** Local bot tokens in the order to try them. */
|
|
63
|
+
localCandidates: (ref: SlackFileRef, requesterAgent?: string) => LocalTokenCandidate[] | Promise<LocalTokenCandidate[]>;
|
|
64
|
+
/** Cloud base URL and access token; null when not signed in. */
|
|
65
|
+
cloud: () => {
|
|
66
|
+
baseUrl: string;
|
|
67
|
+
token: string;
|
|
68
|
+
} | null;
|
|
69
|
+
/** Where files are written. Default `~/.crewly/tmp/slack-files`. */
|
|
70
|
+
saveDir?: string;
|
|
71
|
+
fetchImpl?: typeof fetch;
|
|
72
|
+
slackApiBase?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The service — see module docs.
|
|
76
|
+
*/
|
|
77
|
+
export declare class SlackFileFetchService {
|
|
78
|
+
private readonly deps;
|
|
79
|
+
private readonly logger;
|
|
80
|
+
private readonly fetchImpl;
|
|
81
|
+
private readonly apiBase;
|
|
82
|
+
private readonly saveDir;
|
|
83
|
+
constructor(deps: SlackFileFetchDeps);
|
|
84
|
+
/**
|
|
85
|
+
* Fetch a file: locally first, then through Cloud.
|
|
86
|
+
*
|
|
87
|
+
* @param fileRef - File id, permalink, download URL or message link
|
|
88
|
+
* @param opts - `requesterAgent` (preferred bot, audit), `maxBytes` (default 25 MB)
|
|
89
|
+
* @returns Metadata and the saved path
|
|
90
|
+
* @throws {SlackFileGetError}
|
|
91
|
+
*/
|
|
92
|
+
get(fileRef: string, opts?: {
|
|
93
|
+
requesterAgent?: string;
|
|
94
|
+
maxBytes?: number;
|
|
95
|
+
}): Promise<SlackFetchedFile>;
|
|
96
|
+
private getLocal;
|
|
97
|
+
private fileFromMessage;
|
|
98
|
+
private download;
|
|
99
|
+
private getViaCloud;
|
|
100
|
+
private save;
|
|
101
|
+
private slack;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The first lines of a text file, for a one-glance preview.
|
|
105
|
+
*
|
|
106
|
+
* @param localPath - Saved file
|
|
107
|
+
* @returns Up to PREVIEW_LINES lines / PREVIEW_CHARS characters
|
|
108
|
+
*/
|
|
109
|
+
export declare function previewTextFile(localPath: string): Promise<string>;
|
|
110
|
+
/**
|
|
111
|
+
* The process-wide service, wired to this instance's Slack identities and
|
|
112
|
+
* Cloud sign-in. Built on first use.
|
|
113
|
+
*
|
|
114
|
+
* @returns The service
|
|
115
|
+
*/
|
|
116
|
+
export declare function getSlackFileFetchService(): Promise<SlackFileFetchService>;
|
|
117
|
+
/** Replace the process-wide service (tests). */
|
|
118
|
+
export declare function setSlackFileFetchService(service: SlackFileFetchService | null): void;
|
|
119
|
+
//# sourceMappingURL=slack-file-fetch.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-file-fetch.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-file-fetch.service.ts"],"names":[],"mappings":"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"}
|