crewly 1.20.205 → 1.20.207
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/hooks/credential-guard/guard.sh +243 -0
- package/config/skills/agent/core/docs-comment/SKILL.md +121 -0
- package/config/skills/agent/core/docs-comment/execute.sh +131 -0
- package/config/skills/agent/core/docs-comment/execute.test.sh +105 -0
- package/dist/backend/backend/src/constants.d.ts +67 -2
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +71 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +17 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +19 -5
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +71 -5
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +4 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts +30 -0
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +75 -0
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.d.ts +4 -0
- package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.routes.js +9 -1
- package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.js +10 -2
- package/dist/backend/backend/src/controllers/workspace/workspace.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts +8 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +39 -1
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +4 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-daemon.utils.d.ts +16 -0
- package/dist/backend/backend/src/services/agent/codex-daemon.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/codex-daemon.utils.js +44 -0
- package/dist/backend/backend/src/services/agent/codex-daemon.utils.js.map +1 -1
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +14 -2
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +18 -3
- package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/credential-guard.service.d.ts +153 -0
- package/dist/backend/backend/src/services/agent/credential-guard.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/credential-guard.service.js +314 -0
- package/dist/backend/backend/src/services/agent/credential-guard.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +5 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +39 -0
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +132 -3
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.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 +1 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/core/credential-files.d.ts +26 -0
- package/dist/backend/backend/src/services/core/credential-files.d.ts.map +1 -0
- package/dist/backend/backend/src/services/core/credential-files.js +60 -0
- package/dist/backend/backend/src/services/core/credential-files.js.map +1 -0
- package/dist/backend/backend/src/services/google/docs-comments.service.d.ts +171 -0
- package/dist/backend/backend/src/services/google/docs-comments.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/google/docs-comments.service.js +218 -0
- package/dist/backend/backend/src/services/google/docs-comments.service.js.map +1 -0
- package/dist/backend/backend/src/services/google/docs.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/docs.service.js +14 -1
- package/dist/backend/backend/src/services/google/docs.service.js.map +1 -1
- package/dist/backend/backend/src/services/google/drive.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/google/drive.service.js +6 -4
- package/dist/backend/backend/src/services/google/drive.service.js.map +1 -1
- package/dist/backend/backend/src/services/google/google-api.client.d.ts +16 -3
- 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 +5 -2
- package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -1
- package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +10 -0
- 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 +10 -0
- package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.d.ts +68 -0
- package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.d.ts.map +1 -0
- package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.js +95 -0
- package/dist/backend/backend/src/services/monitoring/credential-guard-alerts.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +67 -2
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +71 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +4 -0
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-daemon.utils.d.ts +16 -0
- package/dist/cli/backend/src/services/agent/codex-daemon.utils.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/codex-daemon.utils.js +44 -0
- package/dist/cli/backend/src/services/agent/codex-daemon.utils.js.map +1 -1
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +14 -2
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +18 -3
- package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/credential-guard.service.d.ts +153 -0
- package/dist/cli/backend/src/services/agent/credential-guard.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/credential-guard.service.js +314 -0
- package/dist/cli/backend/src/services/agent/credential-guard.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +5 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +39 -0
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +132 -3
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.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 +1 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/core/credential-files.d.ts +26 -0
- package/dist/cli/backend/src/services/core/credential-files.d.ts.map +1 -0
- package/dist/cli/backend/src/services/core/credential-files.js +60 -0
- package/dist/cli/backend/src/services/core/credential-files.js.map +1 -0
- package/package.json +1 -1
- package/packages/crewly-agent/src/runtime/credential-guard.test.ts +48 -0
- package/packages/crewly-agent/src/runtime/credential-guard.ts +56 -0
- package/packages/crewly-agent/src/runtime/tool-registry.ts +15 -0
- package/packages/crewly-agent/src/runtime/web-search.tool.test.ts +18 -0
- package/packages/crewly-agent/src/runtime/web-search.tool.ts +36 -14
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
|
|
16
16
|
import { z } from 'zod';
|
|
17
17
|
import type { ToolDefinition } from './types.js';
|
|
18
|
-
import {
|
|
18
|
+
import { CloudNotLoggedInError, type CloudConfig } from './cloud-config.js';
|
|
19
19
|
|
|
20
20
|
const SEARCH_PATH = '/api/v1/search';
|
|
21
|
+
/** The local backend's proxy for Cloud search (it holds the Cloud token; agents never see it). */
|
|
22
|
+
const BACKEND_SEARCH_PATH = '/api/cloud/search';
|
|
21
23
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
22
24
|
|
|
23
25
|
interface SearchSource {
|
|
@@ -35,13 +37,25 @@ interface SearchResponse {
|
|
|
35
37
|
|
|
36
38
|
/** Injectable IO for tests. */
|
|
37
39
|
export interface WebSearchDeps {
|
|
40
|
+
/**
|
|
41
|
+
* Direct mode: read the Cloud token and call Cloud. Only for tests and
|
|
42
|
+
* tools outside an agent. Without it the tool goes through the local
|
|
43
|
+
* backend (specs/2026-10-04-agent-credential-isolation.md): the Cloud
|
|
44
|
+
* credentials are sealed and are not available to agents.
|
|
45
|
+
*/
|
|
38
46
|
loadConfig?: () => Promise<CloudConfig>;
|
|
47
|
+
/** Backend base URL for the default mode (default CREWLY_API_URL or http://localhost:8787). */
|
|
48
|
+
apiBaseUrl?: string;
|
|
49
|
+
/** Environment for the agent's session + badge headers (default process.env). */
|
|
50
|
+
env?: NodeJS.ProcessEnv;
|
|
39
51
|
fetchImpl?: typeof fetch;
|
|
40
52
|
timeoutMs?: number;
|
|
41
53
|
}
|
|
42
54
|
|
|
43
55
|
export function createWebSearchTool(deps: WebSearchDeps = {}): ToolDefinition {
|
|
44
|
-
const loadConfig = deps.loadConfig
|
|
56
|
+
const loadConfig = deps.loadConfig;
|
|
57
|
+
const env = deps.env ?? process.env;
|
|
58
|
+
const apiBaseUrl = (deps.apiBaseUrl ?? env.CREWLY_API_URL ?? 'http://localhost:8787').replace(/\/$/, '');
|
|
45
59
|
const fetchImpl = deps.fetchImpl ?? fetch;
|
|
46
60
|
const timeoutMs = deps.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
47
61
|
|
|
@@ -61,26 +75,34 @@ export function createWebSearchTool(deps: WebSearchDeps = {}): ToolDefinition {
|
|
|
61
75
|
execute: async (args) => {
|
|
62
76
|
const { query, max_results } = args as { query: string; max_results?: number };
|
|
63
77
|
|
|
64
|
-
let
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
78
|
+
let url: string;
|
|
79
|
+
const headers: Record<string, string> = { 'Content-Type': 'application/json' };
|
|
80
|
+
if (loadConfig) {
|
|
81
|
+
let config: CloudConfig;
|
|
82
|
+
try {
|
|
83
|
+
config = await loadConfig();
|
|
84
|
+
} catch (err) {
|
|
85
|
+
if (err instanceof CloudNotLoggedInError) {
|
|
86
|
+
return { success: false, error: err.message };
|
|
87
|
+
}
|
|
88
|
+
throw err;
|
|
70
89
|
}
|
|
71
|
-
|
|
90
|
+
url = `${config.cloudUrl}${SEARCH_PATH}`;
|
|
91
|
+
headers.Authorization = `Bearer ${config.token}`;
|
|
92
|
+
} else {
|
|
93
|
+
// Through the backend, identified by this agent's session + badge.
|
|
94
|
+
url = `${apiBaseUrl}${BACKEND_SEARCH_PATH}`;
|
|
95
|
+
if (env.CREWLY_SESSION_NAME) headers['X-Agent-Session'] = env.CREWLY_SESSION_NAME;
|
|
96
|
+
if (env.CREWLY_AGENT_BADGE) headers['X-Agent-Badge'] = env.CREWLY_AGENT_BADGE;
|
|
72
97
|
}
|
|
73
98
|
|
|
74
99
|
const controller = new AbortController();
|
|
75
100
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
76
101
|
let resp: Response;
|
|
77
102
|
try {
|
|
78
|
-
resp = await fetchImpl(
|
|
103
|
+
resp = await fetchImpl(url, {
|
|
79
104
|
method: 'POST',
|
|
80
|
-
headers
|
|
81
|
-
'Content-Type': 'application/json',
|
|
82
|
-
Authorization: `Bearer ${config.token}`,
|
|
83
|
-
},
|
|
105
|
+
headers,
|
|
84
106
|
body: JSON.stringify(
|
|
85
107
|
max_results !== undefined ? { query, max_results } : { query },
|
|
86
108
|
),
|