crewly 1.5.22 → 1.6.1
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/roles/orchestrator/fragments/role-boundary.md +4 -1
- package/config/roles/orchestrator/prompt.md +219 -25
- package/config/roles/orchestrator/soul.md +47 -10
- package/config/skills/_common/lib.sh +28 -0
- package/config/skills/agent/core/cancel-followup/SKILL.md +38 -0
- package/config/skills/agent/core/cancel-followup/execute.sh +92 -0
- package/config/skills/agent/core/cancel-followup/execute.test.sh +42 -0
- package/config/skills/agent/core/list-my-followups/SKILL.md +36 -0
- package/config/skills/agent/core/list-my-followups/execute.sh +74 -0
- package/config/skills/agent/core/list-my-followups/execute.test.sh +41 -0
- package/config/skills/agent/core/schedule-followup/SKILL.md +53 -0
- package/config/skills/agent/core/schedule-followup/execute.sh +176 -0
- package/config/skills/agent/core/schedule-followup/execute.test.sh +48 -0
- package/config/skills/agent/core/watch-for-event/SKILL.md +60 -0
- package/config/skills/agent/core/watch-for-event/execute.sh +158 -0
- package/config/skills/agent/core/watch-for-event/execute.test.sh +43 -0
- package/config/skills/orchestrator/credential-manager/SKILL.md +218 -0
- package/config/skills/orchestrator/credential-manager/execute.sh +166 -0
- package/config/skills/orchestrator/credential-manager/execute.test.sh +88 -0
- package/dist/backend/backend/src/config/oauth.config.d.ts +33 -0
- package/dist/backend/backend/src/config/oauth.config.d.ts.map +1 -0
- package/dist/backend/backend/src/config/oauth.config.js +45 -0
- package/dist/backend/backend/src/config/oauth.config.js.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts +54 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.js +228 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.d.ts +26 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.js +41 -0
- package/dist/backend/backend/src/controllers/credentials/credentials.routes.js.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts +40 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js +162 -0
- package/dist/backend/backend/src/controllers/credentials/google-oauth.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/skill/skill.controller.js +1 -0
- package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +23 -14
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +23 -4
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +3 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts +3 -1
- package/dist/backend/backend/src/scripts/backfill-mission-priority.d.ts.map +1 -1
- package/dist/backend/backend/src/scripts/backfill-mission-priority.js +16 -4
- package/dist/backend/backend/src/scripts/backfill-mission-priority.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.js +4 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/role-boundary.module.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 +17 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js +1 -1
- package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
- package/dist/backend/backend/src/services/credential/credential-store.service.d.ts +161 -0
- package/dist/backend/backend/src/services/credential/credential-store.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/credential/credential-store.service.js +298 -0
- package/dist/backend/backend/src/services/credential/credential-store.service.js.map +1 -0
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +105 -0
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -0
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +272 -0
- package/dist/backend/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -0
- package/dist/backend/backend/src/services/mcp-server.d.ts +46 -2
- package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/backend/backend/src/services/mcp-server.js +216 -211
- package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +254 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +285 -0
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -0
- package/dist/backend/backend/src/services/project/task.service.d.ts +18 -2
- package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project/task.service.js +74 -53
- package/dist/backend/backend/src/services/project/task.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +41 -0
- package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-executor.service.js +136 -7
- package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill.service.js +1 -0
- package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/contract-matcher.d.ts +20 -0
- package/dist/backend/backend/src/services/v3/contract-matcher.d.ts.map +1 -0
- package/dist/backend/backend/src/services/v3/contract-matcher.js +33 -0
- package/dist/backend/backend/src/services/v3/contract-matcher.js.map +1 -0
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts +20 -1
- package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation.service.js +97 -28
- package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts +6 -4
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.js +18 -28
- package/dist/backend/backend/src/services/v3/service-contract-gate.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js +14 -9
- package/dist/backend/backend/src/services/v3/team-trigger-reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +34 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js +115 -5
- package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
- package/dist/backend/backend/src/types/credential.types.d.ts +185 -0
- package/dist/backend/backend/src/types/credential.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/credential.types.js +76 -0
- package/dist/backend/backend/src/types/credential.types.js.map +1 -0
- package/dist/backend/backend/src/types/skill.types.d.ts +9 -0
- package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/skill.types.js.map +1 -1
- package/dist/backend/backend/src/utils/encryption.utils.d.ts +57 -0
- package/dist/backend/backend/src/utils/encryption.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/encryption.utils.js +162 -0
- package/dist/backend/backend/src/utils/encryption.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts +41 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.js +44 -0
- package/dist/backend/backend/src/utils/google-userinfo.utils.js.map +1 -0
- package/dist/cli/backend/src/config/oauth.config.d.ts +33 -0
- package/dist/cli/backend/src/config/oauth.config.d.ts.map +1 -0
- package/dist/cli/backend/src/config/oauth.config.js +45 -0
- package/dist/cli/backend/src/config/oauth.config.js.map +1 -0
- package/dist/cli/backend/src/services/credential/credential-store.service.d.ts +161 -0
- package/dist/cli/backend/src/services/credential/credential-store.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/credential/credential-store.service.js +298 -0
- package/dist/cli/backend/src/services/credential/credential-store.service.js.map +1 -0
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts +105 -0
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.d.ts.map +1 -0
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js +272 -0
- package/dist/cli/backend/src/services/credential/helpers/gemini-cli-workspace.helper.js.map +1 -0
- package/dist/cli/backend/src/services/mcp-server.d.ts +46 -2
- package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
- package/dist/cli/backend/src/services/mcp-server.js +216 -211
- package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +254 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts.map +1 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +285 -0
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -0
- package/dist/cli/backend/src/services/settings/settings.service.d.ts +168 -0
- package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/settings/settings.service.js +312 -0
- package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts +177 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.js +624 -0
- package/dist/cli/backend/src/services/skill/skill-executor.service.js.map +1 -0
- package/dist/cli/backend/src/services/skill/skill.service.d.ts +273 -0
- package/dist/cli/backend/src/services/skill/skill.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill/skill.service.js +655 -0
- package/dist/cli/backend/src/services/skill/skill.service.js.map +1 -0
- package/dist/cli/backend/src/types/credential.types.d.ts +185 -0
- package/dist/cli/backend/src/types/credential.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/credential.types.js +76 -0
- package/dist/cli/backend/src/types/credential.types.js.map +1 -0
- package/dist/cli/backend/src/types/skill.types.d.ts +9 -0
- package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/skill.types.js.map +1 -1
- package/dist/cli/backend/src/utils/encryption.utils.d.ts +57 -0
- package/dist/cli/backend/src/utils/encryption.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/encryption.utils.js +162 -0
- package/dist/cli/backend/src/utils/encryption.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts +41 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.js +44 -0
- package/dist/cli/backend/src/utils/google-userinfo.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/skill-md-parser.d.ts +38 -0
- package/dist/cli/backend/src/utils/skill-md-parser.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/skill-md-parser.js +47 -0
- package/dist/cli/backend/src/utils/skill-md-parser.js.map +1 -0
- package/frontend/dist/assets/{index-dc92ab64.css → index-6aaa0630.css} +1 -1
- package/frontend/dist/assets/{index-76d76633.js → index-70356616.js} +334 -328
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/config/experts/empathetic-resolver/expert.json +0 -11
- package/config/experts/empathetic-resolver.md +0 -32
- package/config/experts/pragmatic-architect/expert.json +0 -11
- package/config/experts/pragmatic-architect.md +0 -32
- package/config/experts/viral-alchemist/expert.json +0 -11
- package/config/experts/viral-alchemist.md +0 -32
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential System Types
|
|
3
|
+
*
|
|
4
|
+
* Workspace-level credential store. Credentials (API keys, OAuth tokens) are
|
|
5
|
+
* decoupled from skills: skills declare slots, users add named credentials,
|
|
6
|
+
* agents bind specific credentials to slots at execution time.
|
|
7
|
+
*
|
|
8
|
+
* Registry entries are safe to show to LLM/agent contexts. Encrypted
|
|
9
|
+
* payloads (containing real token values) are never exposed to the agent —
|
|
10
|
+
* they are read only by the credential helper and by the skill executor
|
|
11
|
+
* for env-var injection into subprocesses.
|
|
12
|
+
*
|
|
13
|
+
* @module types/credential.types
|
|
14
|
+
*/
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Errors
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Thrown when a required slot has neither a binding nor a default.
|
|
20
|
+
*/
|
|
21
|
+
export class MissingCredentialError extends Error {
|
|
22
|
+
slot;
|
|
23
|
+
provider;
|
|
24
|
+
constructor(slot, provider) {
|
|
25
|
+
super(`No credential bound to required slot '${slot}' (provider: ${provider})`);
|
|
26
|
+
this.slot = slot;
|
|
27
|
+
this.provider = provider;
|
|
28
|
+
this.name = 'MissingCredentialError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Thrown when a bound credential's scopes do not cover the slot's requirements.
|
|
33
|
+
*/
|
|
34
|
+
export class InsufficientScopeError extends Error {
|
|
35
|
+
slot;
|
|
36
|
+
required;
|
|
37
|
+
granted;
|
|
38
|
+
missing;
|
|
39
|
+
constructor(slot, required, granted) {
|
|
40
|
+
const missing = required.filter((s) => !granted.includes(s));
|
|
41
|
+
super(`Credential for slot '${slot}' is missing scope(s): ${missing.join(', ')}`);
|
|
42
|
+
this.slot = slot;
|
|
43
|
+
this.required = required;
|
|
44
|
+
this.granted = granted;
|
|
45
|
+
this.name = 'InsufficientScopeError';
|
|
46
|
+
this.missing = missing;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Thrown when an OAuth credential's refresh token is no longer valid.
|
|
51
|
+
* Carries the remediation string that callers (UI / agent) can surface to users.
|
|
52
|
+
*/
|
|
53
|
+
export class CredentialRevokedError extends Error {
|
|
54
|
+
credentialId;
|
|
55
|
+
credentialName;
|
|
56
|
+
remediation;
|
|
57
|
+
constructor(credentialId, credentialName, remediation) {
|
|
58
|
+
super(`Credential '${credentialName}' (${credentialId}) is revoked. ${remediation}`);
|
|
59
|
+
this.credentialId = credentialId;
|
|
60
|
+
this.credentialName = credentialName;
|
|
61
|
+
this.remediation = remediation;
|
|
62
|
+
this.name = 'CredentialRevokedError';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Thrown when a referenced credential id doesn't exist in the registry.
|
|
67
|
+
*/
|
|
68
|
+
export class CredentialNotFoundError extends Error {
|
|
69
|
+
credentialId;
|
|
70
|
+
constructor(credentialId) {
|
|
71
|
+
super(`Credential not found: ${credentialId}`);
|
|
72
|
+
this.credentialId = credentialId;
|
|
73
|
+
this.name = 'CredentialNotFoundError';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=credential.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/credential.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA4KH,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IACA;IAFlB,YACkB,IAAY,EACZ,QAAgB;QAEhC,KAAK,CAAC,yCAAyC,IAAI,gBAAgB,QAAQ,GAAG,CAAC,CAAC;QAHhE,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAGhC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAI7B;IACA;IACA;IALF,OAAO,CAAW;IAElC,YACkB,IAAY,EACZ,QAAkB,EAClB,OAAiB;QAEjC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,CACH,wBAAwB,IAAI,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3E,CAAC;QAPc,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAU;QAClB,YAAO,GAAP,OAAO,CAAU;QAMjC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IACA;IACA;IAHlB,YACkB,YAAoB,EACpB,cAAsB,EACtB,WAAmB;QAEnC,KAAK,CACH,eAAe,cAAc,MAAM,YAAY,iBAAiB,WAAW,EAAE,CAC9E,CAAC;QANc,iBAAY,GAAZ,YAAY,CAAQ;QACpB,mBAAc,GAAd,cAAc,CAAQ;QACtB,gBAAW,GAAX,WAAW,CAAQ;QAKnC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACpB;IAA5B,YAA4B,YAAoB;QAC9C,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;QADrB,iBAAY,GAAZ,YAAY,CAAQ;QAE9C,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -97,6 +97,7 @@ export interface SkillEnvironmentConfig {
|
|
|
97
97
|
/** Required environment variables (will error if not set) */
|
|
98
98
|
required?: string[];
|
|
99
99
|
}
|
|
100
|
+
export type { SkillCredentialRequirement, CredentialBindings } from './credential.types.js';
|
|
100
101
|
/**
|
|
101
102
|
* Runtime configuration for skills that modify agent startup
|
|
102
103
|
*/
|
|
@@ -143,6 +144,8 @@ export interface Skill {
|
|
|
143
144
|
execution?: SkillExecutionConfig;
|
|
144
145
|
/** Environment configuration */
|
|
145
146
|
environment?: SkillEnvironmentConfig;
|
|
147
|
+
/** Credential requirements (OAuth tokens, API keys) declared as named slots */
|
|
148
|
+
credentials?: import('./credential.types.js').SkillCredentialRequirement[];
|
|
146
149
|
/** Runtime configuration for agent startup modifications */
|
|
147
150
|
runtime?: SkillRuntimeConfig;
|
|
148
151
|
/** Notices to display to users (requirements, warnings, etc.) */
|
|
@@ -301,6 +304,12 @@ export interface SkillExecutionContext {
|
|
|
301
304
|
userInput?: string;
|
|
302
305
|
/** Additional context data */
|
|
303
306
|
metadata?: Record<string, unknown>;
|
|
307
|
+
/**
|
|
308
|
+
* Optional mapping from credential slot name to credential UUID. Overrides
|
|
309
|
+
* the skill's declared `default` for each slot. Provided by the agent at
|
|
310
|
+
* execution time (e.g., "use the personal-gmail account for this task").
|
|
311
|
+
*/
|
|
312
|
+
credentialBindings?: import('./credential.types.js').CredentialBindings;
|
|
304
313
|
}
|
|
305
314
|
/**
|
|
306
315
|
* Result of skill execution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/skill.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,QAAQ,GACR,eAAe,GACf,UAAU,GACV,kBAAkB,GAClB,YAAY,GACZ,UAAU,GACV,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,iBAAiB,GACjB,SAAS,CAAC;AAEd;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,cAAc,GAAG,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,WAAW,EAAE,iBAAiB,CAAC;IAE/B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IAEZ,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IAErB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,IAAI,EAAE,kBAAkB,CAAC;IAEzB,sDAAsD;IACtD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,yDAAyD;IACzD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,gDAAgD;IAChD,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,wDAAwD;IACxD,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"skill.types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/types/skill.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/skill.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.types.js","sourceRoot":"","sources":["../../../../../backend/src/types/skill.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential Encryption Utilities
|
|
3
|
+
*
|
|
4
|
+
* AES-256-GCM encryption with scrypt-derived keys for credential payloads.
|
|
5
|
+
* Uses a per-install master.key file (mode 0600) as the base key material.
|
|
6
|
+
*
|
|
7
|
+
* File format:
|
|
8
|
+
* [1 byte: version=1] [12 bytes: IV] [16 bytes: auth tag] [N bytes: ciphertext]
|
|
9
|
+
*
|
|
10
|
+
* Threat model:
|
|
11
|
+
* - Primary defense: file exfiltration via backup / cloud sync / screen capture
|
|
12
|
+
* - NOT a defense against a compromised local user account or malicious code
|
|
13
|
+
* running as the user (both can read master.key and derive the same key)
|
|
14
|
+
*
|
|
15
|
+
* @module utils/encryption.utils
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Clear the derived-key cache. Primarily for tests — production code should
|
|
19
|
+
* not need this as master.key is assumed stable for the process lifetime.
|
|
20
|
+
*/
|
|
21
|
+
export declare function _resetDerivedKeyCache(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Ensure a master.key file exists at the given path. If absent, generate
|
|
24
|
+
* a cryptographically random 32-byte key and write it with mode 0600.
|
|
25
|
+
*
|
|
26
|
+
* Idempotent: if the file already exists, does nothing.
|
|
27
|
+
*
|
|
28
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
29
|
+
*/
|
|
30
|
+
export declare function ensureMasterKey(masterKeyPath: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Encrypt a UTF-8 string using AES-256-GCM.
|
|
33
|
+
*
|
|
34
|
+
* @param plaintext - The string to encrypt (caller typically JSON-serializes first)
|
|
35
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
36
|
+
* @returns Buffer in the format `[version][iv][tag][ciphertext]`
|
|
37
|
+
*/
|
|
38
|
+
export declare function encrypt(plaintext: string, masterKeyPath: string): Promise<Buffer>;
|
|
39
|
+
/**
|
|
40
|
+
* Decrypt a buffer produced by `encrypt()`.
|
|
41
|
+
*
|
|
42
|
+
* @param encrypted - Buffer in the `[version][iv][tag][ciphertext]` format
|
|
43
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
44
|
+
* @returns The decrypted UTF-8 string
|
|
45
|
+
* @throws Error if the buffer is malformed, the version is unsupported,
|
|
46
|
+
* or the auth tag does not match (tampering or wrong key)
|
|
47
|
+
*/
|
|
48
|
+
export declare function decrypt(encrypted: Buffer, masterKeyPath: string): Promise<string>;
|
|
49
|
+
/**
|
|
50
|
+
* Default credentials directory: `~/.crewly/credentials/`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function defaultCredentialsDir(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Default master.key path: `~/.crewly/credentials/master.key`.
|
|
55
|
+
*/
|
|
56
|
+
export declare function defaultMasterKeyPath(): string;
|
|
57
|
+
//# sourceMappingURL=encryption.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/encryption.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmEH;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1E;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential Encryption Utilities
|
|
3
|
+
*
|
|
4
|
+
* AES-256-GCM encryption with scrypt-derived keys for credential payloads.
|
|
5
|
+
* Uses a per-install master.key file (mode 0600) as the base key material.
|
|
6
|
+
*
|
|
7
|
+
* File format:
|
|
8
|
+
* [1 byte: version=1] [12 bytes: IV] [16 bytes: auth tag] [N bytes: ciphertext]
|
|
9
|
+
*
|
|
10
|
+
* Threat model:
|
|
11
|
+
* - Primary defense: file exfiltration via backup / cloud sync / screen capture
|
|
12
|
+
* - NOT a defense against a compromised local user account or malicious code
|
|
13
|
+
* running as the user (both can read master.key and derive the same key)
|
|
14
|
+
*
|
|
15
|
+
* @module utils/encryption.utils
|
|
16
|
+
*/
|
|
17
|
+
import { promises as fs } from 'fs';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
import os from 'os';
|
|
20
|
+
import crypto from 'crypto';
|
|
21
|
+
/** File-format version byte — bump if layout changes. */
|
|
22
|
+
const FORMAT_VERSION = 1;
|
|
23
|
+
/** AES-256-GCM uses 12-byte (96-bit) IVs per NIST recommendation. */
|
|
24
|
+
const IV_LENGTH = 12;
|
|
25
|
+
/** AES-GCM produces 16-byte (128-bit) auth tags. */
|
|
26
|
+
const AUTH_TAG_LENGTH = 16;
|
|
27
|
+
/** AES-256 key size. */
|
|
28
|
+
const KEY_LENGTH = 32;
|
|
29
|
+
/** scrypt N (iteration count). 2^15 = 32768. */
|
|
30
|
+
const SCRYPT_N = 32768;
|
|
31
|
+
const SCRYPT_R = 8;
|
|
32
|
+
const SCRYPT_P = 1;
|
|
33
|
+
/**
|
|
34
|
+
* scrypt memory cap. Default in Node is 32MB which is right at the edge for
|
|
35
|
+
* our parameters; give explicit headroom so derivation never fails.
|
|
36
|
+
*/
|
|
37
|
+
const SCRYPT_MAX_MEM = 128 * 1024 * 1024;
|
|
38
|
+
/** Fixed salt — changing invalidates all previously encrypted credentials. */
|
|
39
|
+
const SCRYPT_SALT = Buffer.from('crewly-credentials-v1', 'utf8');
|
|
40
|
+
/**
|
|
41
|
+
* Module-level cache of derived keys, keyed by master.key path. scrypt is
|
|
42
|
+
* intentionally expensive (~100ms per call), so we run it once per master
|
|
43
|
+
* key path per process. Concurrent callers share the in-flight promise.
|
|
44
|
+
*/
|
|
45
|
+
const derivedKeyCache = new Map();
|
|
46
|
+
/**
|
|
47
|
+
* Derive the AES key from the master.key file contents via scrypt. Results
|
|
48
|
+
* are cached by master-key path for the lifetime of the process.
|
|
49
|
+
*
|
|
50
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
51
|
+
* @returns A 32-byte derived key
|
|
52
|
+
*/
|
|
53
|
+
async function deriveKey(masterKeyPath) {
|
|
54
|
+
const cached = derivedKeyCache.get(masterKeyPath);
|
|
55
|
+
if (cached)
|
|
56
|
+
return cached;
|
|
57
|
+
const promise = deriveKeyUncached(masterKeyPath).catch((err) => {
|
|
58
|
+
// On failure, remove the rejected promise so the next call retries.
|
|
59
|
+
derivedKeyCache.delete(masterKeyPath);
|
|
60
|
+
throw err;
|
|
61
|
+
});
|
|
62
|
+
derivedKeyCache.set(masterKeyPath, promise);
|
|
63
|
+
return promise;
|
|
64
|
+
}
|
|
65
|
+
async function deriveKeyUncached(masterKeyPath) {
|
|
66
|
+
const masterKey = await fs.readFile(masterKeyPath);
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
crypto.scrypt(masterKey, SCRYPT_SALT, KEY_LENGTH, { N: SCRYPT_N, r: SCRYPT_R, p: SCRYPT_P, maxmem: SCRYPT_MAX_MEM }, (err, derivedKey) => (err ? reject(err) : resolve(derivedKey)));
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Clear the derived-key cache. Primarily for tests — production code should
|
|
73
|
+
* not need this as master.key is assumed stable for the process lifetime.
|
|
74
|
+
*/
|
|
75
|
+
export function _resetDerivedKeyCache() {
|
|
76
|
+
derivedKeyCache.clear();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Ensure a master.key file exists at the given path. If absent, generate
|
|
80
|
+
* a cryptographically random 32-byte key and write it with mode 0600.
|
|
81
|
+
*
|
|
82
|
+
* Idempotent: if the file already exists, does nothing.
|
|
83
|
+
*
|
|
84
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
85
|
+
*/
|
|
86
|
+
export async function ensureMasterKey(masterKeyPath) {
|
|
87
|
+
try {
|
|
88
|
+
await fs.access(masterKeyPath);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// File doesn't exist — create it.
|
|
93
|
+
}
|
|
94
|
+
await fs.mkdir(path.dirname(masterKeyPath), { recursive: true });
|
|
95
|
+
const key = crypto.randomBytes(32);
|
|
96
|
+
await fs.writeFile(masterKeyPath, key, { mode: 0o600 });
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Encrypt a UTF-8 string using AES-256-GCM.
|
|
100
|
+
*
|
|
101
|
+
* @param plaintext - The string to encrypt (caller typically JSON-serializes first)
|
|
102
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
103
|
+
* @returns Buffer in the format `[version][iv][tag][ciphertext]`
|
|
104
|
+
*/
|
|
105
|
+
export async function encrypt(plaintext, masterKeyPath) {
|
|
106
|
+
const key = await deriveKey(masterKeyPath);
|
|
107
|
+
const iv = crypto.randomBytes(IV_LENGTH);
|
|
108
|
+
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
|
|
109
|
+
const ciphertext = Buffer.concat([
|
|
110
|
+
cipher.update(plaintext, 'utf8'),
|
|
111
|
+
cipher.final(),
|
|
112
|
+
]);
|
|
113
|
+
const authTag = cipher.getAuthTag();
|
|
114
|
+
return Buffer.concat([
|
|
115
|
+
Buffer.from([FORMAT_VERSION]),
|
|
116
|
+
iv,
|
|
117
|
+
authTag,
|
|
118
|
+
ciphertext,
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Decrypt a buffer produced by `encrypt()`.
|
|
123
|
+
*
|
|
124
|
+
* @param encrypted - Buffer in the `[version][iv][tag][ciphertext]` format
|
|
125
|
+
* @param masterKeyPath - Absolute path to the master.key file
|
|
126
|
+
* @returns The decrypted UTF-8 string
|
|
127
|
+
* @throws Error if the buffer is malformed, the version is unsupported,
|
|
128
|
+
* or the auth tag does not match (tampering or wrong key)
|
|
129
|
+
*/
|
|
130
|
+
export async function decrypt(encrypted, masterKeyPath) {
|
|
131
|
+
if (encrypted.length < 1 + IV_LENGTH + AUTH_TAG_LENGTH + 1) {
|
|
132
|
+
throw new Error('Encrypted buffer is too short to be valid');
|
|
133
|
+
}
|
|
134
|
+
const version = encrypted[0];
|
|
135
|
+
if (version !== FORMAT_VERSION) {
|
|
136
|
+
throw new Error(`Unsupported encryption format version: ${version}`);
|
|
137
|
+
}
|
|
138
|
+
const iv = encrypted.subarray(1, 1 + IV_LENGTH);
|
|
139
|
+
const authTag = encrypted.subarray(1 + IV_LENGTH, 1 + IV_LENGTH + AUTH_TAG_LENGTH);
|
|
140
|
+
const ciphertext = encrypted.subarray(1 + IV_LENGTH + AUTH_TAG_LENGTH);
|
|
141
|
+
const key = await deriveKey(masterKeyPath);
|
|
142
|
+
const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
|
|
143
|
+
decipher.setAuthTag(authTag);
|
|
144
|
+
const plaintext = Buffer.concat([
|
|
145
|
+
decipher.update(ciphertext),
|
|
146
|
+
decipher.final(),
|
|
147
|
+
]);
|
|
148
|
+
return plaintext.toString('utf8');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Default credentials directory: `~/.crewly/credentials/`.
|
|
152
|
+
*/
|
|
153
|
+
export function defaultCredentialsDir() {
|
|
154
|
+
return path.join(os.homedir(), '.crewly', 'credentials');
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Default master.key path: `~/.crewly/credentials/master.key`.
|
|
158
|
+
*/
|
|
159
|
+
export function defaultMasterKeyPath() {
|
|
160
|
+
return path.join(defaultCredentialsDir(), 'master.key');
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=encryption.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/encryption.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,yDAAyD;AACzD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,qEAAqE;AACrE,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,oDAAoD;AACpD,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,wBAAwB;AACxB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,gDAAgD;AAChD,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB;;;GAGG;AACH,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,8EAA8E;AAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE3D;;;;;;GAMG;AACH,KAAK,UAAU,SAAS,CAAC,aAAqB;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7D,oEAAoE;QACpE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,aAAqB;IACpD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,MAAM,CACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EACjE,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAiB,EACjB,aAAqB;IAErB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE;KACf,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;QAC7B,EAAE;QACF,OAAO;QACP,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAiB,EACjB,aAAqB;IAErB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAChC,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,GAAG,eAAe,CAChC,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC;IAEvE,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE;KACjB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Userinfo Helper
|
|
3
|
+
*
|
|
4
|
+
* Fetches the signed-in user's email from Google's userinfo endpoint given a
|
|
5
|
+
* valid OAuth access token. Best-effort: returns `undefined` on network or
|
|
6
|
+
* HTTP error so callers can proceed without an account email when the grant
|
|
7
|
+
* is still valid.
|
|
8
|
+
*
|
|
9
|
+
* Used by both the credentials controller (headless OAuth completion) and
|
|
10
|
+
* the Gemini CLI Workspace helper (token capture) so the fetch + parsing
|
|
11
|
+
* logic lives in one place.
|
|
12
|
+
*
|
|
13
|
+
* @module utils/google-userinfo.utils
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Minimal fetch-compatible function shape — injectable for tests and to
|
|
17
|
+
* match the `FetchLike` shape used by the Gemini CLI helper.
|
|
18
|
+
*/
|
|
19
|
+
export type FetchLike = (url: string, init?: {
|
|
20
|
+
method?: string;
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
body?: string;
|
|
23
|
+
}) => Promise<{
|
|
24
|
+
ok: boolean;
|
|
25
|
+
status: number;
|
|
26
|
+
text(): Promise<string>;
|
|
27
|
+
json(): Promise<unknown>;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Fetch the account email associated with the given OAuth access token.
|
|
31
|
+
*
|
|
32
|
+
* Best-effort: returns `undefined` on network failure, non-2xx response,
|
|
33
|
+
* or a response missing the `email` field. Never throws.
|
|
34
|
+
*
|
|
35
|
+
* @param accessToken - A valid Google OAuth access token with a scope that
|
|
36
|
+
* grants `userinfo.email` (e.g. openid/email).
|
|
37
|
+
* @param fetchImpl - Injectable fetch (defaults to the global `fetch`).
|
|
38
|
+
* @returns The account email, or `undefined` if it cannot be determined.
|
|
39
|
+
*/
|
|
40
|
+
export declare function fetchGoogleAccountEmail(accessToken: string, fetchImpl?: FetchLike): Promise<string | undefined>;
|
|
41
|
+
//# sourceMappingURL=google-userinfo.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-userinfo.utils.d.ts","sourceRoot":"","sources":["../../../../../backend/src/utils/google-userinfo.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,KACE,OAAO,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Userinfo Helper
|
|
3
|
+
*
|
|
4
|
+
* Fetches the signed-in user's email from Google's userinfo endpoint given a
|
|
5
|
+
* valid OAuth access token. Best-effort: returns `undefined` on network or
|
|
6
|
+
* HTTP error so callers can proceed without an account email when the grant
|
|
7
|
+
* is still valid.
|
|
8
|
+
*
|
|
9
|
+
* Used by both the credentials controller (headless OAuth completion) and
|
|
10
|
+
* the Gemini CLI Workspace helper (token capture) so the fetch + parsing
|
|
11
|
+
* logic lives in one place.
|
|
12
|
+
*
|
|
13
|
+
* @module utils/google-userinfo.utils
|
|
14
|
+
*/
|
|
15
|
+
import { GOOGLE_USERINFO_ENDPOINT } from '../config/oauth.config.js';
|
|
16
|
+
/**
|
|
17
|
+
* Fetch the account email associated with the given OAuth access token.
|
|
18
|
+
*
|
|
19
|
+
* Best-effort: returns `undefined` on network failure, non-2xx response,
|
|
20
|
+
* or a response missing the `email` field. Never throws.
|
|
21
|
+
*
|
|
22
|
+
* @param accessToken - A valid Google OAuth access token with a scope that
|
|
23
|
+
* grants `userinfo.email` (e.g. openid/email).
|
|
24
|
+
* @param fetchImpl - Injectable fetch (defaults to the global `fetch`).
|
|
25
|
+
* @returns The account email, or `undefined` if it cannot be determined.
|
|
26
|
+
*/
|
|
27
|
+
export async function fetchGoogleAccountEmail(accessToken, fetchImpl) {
|
|
28
|
+
const doFetch = fetchImpl ??
|
|
29
|
+
((url, init) => fetch(url, init));
|
|
30
|
+
try {
|
|
31
|
+
const response = await doFetch(GOOGLE_USERINFO_ENDPOINT, {
|
|
32
|
+
method: 'GET',
|
|
33
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok)
|
|
36
|
+
return undefined;
|
|
37
|
+
const data = (await response.json());
|
|
38
|
+
return data.email;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=google-userinfo.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-userinfo.utils.js","sourceRoot":"","sources":["../../../../../backend/src/utils/google-userinfo.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAoBrE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,SAAqB;IAErB,MAAM,OAAO,GACX,SAAS;QACT,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACb,KAAK,CAAC,GAAG,EAAE,IAAmB,CAAqC,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE;YACvD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google OAuth Configuration
|
|
3
|
+
*
|
|
4
|
+
* Shared constants for the Google OAuth flows that piggyback on the Gemini
|
|
5
|
+
* CLI Workspace extension's published OAuth app. Defining these here lets
|
|
6
|
+
* the REST controller (URL-builder) and the helper (refresh client) stay in
|
|
7
|
+
* sync on client_id / redirect_uri / endpoints.
|
|
8
|
+
*
|
|
9
|
+
* These values come from the Gemini CLI Workspace extension's
|
|
10
|
+
* `workspace-server/src/utils/config.ts` — using the same client_id
|
|
11
|
+
* + redirect_uri lets us avoid the 7-day testing-mode grant expiry.
|
|
12
|
+
*
|
|
13
|
+
* @module config/oauth.config
|
|
14
|
+
*/
|
|
15
|
+
/** OAuth client_id for the Gemini CLI Workspace extension's published app. */
|
|
16
|
+
export declare const GOOGLE_OAUTH_CLIENT_ID = "338689075775-o75k922vn5fdl18qergr96rp8g63e4d7.apps.googleusercontent.com";
|
|
17
|
+
/** Redirect URI the Gemini CLI Workspace cloud function is registered for. */
|
|
18
|
+
export declare const GOOGLE_OAUTH_REDIRECT_URI = "https://google-workspace-extension.geminicli.com";
|
|
19
|
+
/** Base URL of Google's OAuth 2.0 authorization endpoint. */
|
|
20
|
+
export declare const GOOGLE_OAUTH_AUTH_BASE = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
21
|
+
/** Cloud Function base URL where the extension's `/refreshToken` lives. */
|
|
22
|
+
export declare const GEMINI_CLI_CLOUD_FUNCTION_URL = "https://google-workspace-extension.geminicli.com";
|
|
23
|
+
/** Path on the cloud function used for token refresh calls. */
|
|
24
|
+
export declare const GEMINI_CLI_REFRESH_PATH = "/refreshToken";
|
|
25
|
+
/** Google's userinfo endpoint — used to resolve an OAuth token's account email. */
|
|
26
|
+
export declare const GOOGLE_USERINFO_ENDPOINT = "https://www.googleapis.com/oauth2/v3/userinfo";
|
|
27
|
+
/**
|
|
28
|
+
* Default scope set for a broad Workspace grant — covers the common Gmail,
|
|
29
|
+
* Drive, Docs, Calendar, and Photos read paths used by marketplace skills.
|
|
30
|
+
* Callers of `/oauth/google/start` may override via the request body.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_GOOGLE_SCOPES: readonly string[];
|
|
33
|
+
//# sourceMappingURL=oauth.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.config.d.ts","sourceRoot":"","sources":["../../../../../backend/src/config/oauth.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,6EACyC,CAAC;AAE7E,8EAA8E;AAC9E,eAAO,MAAM,yBAAyB,qDACc,CAAC;AAErD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB,iDACa,CAAC;AAEjD,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,qDACU,CAAC;AAErD,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,kDACY,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAYlD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google OAuth Configuration
|
|
3
|
+
*
|
|
4
|
+
* Shared constants for the Google OAuth flows that piggyback on the Gemini
|
|
5
|
+
* CLI Workspace extension's published OAuth app. Defining these here lets
|
|
6
|
+
* the REST controller (URL-builder) and the helper (refresh client) stay in
|
|
7
|
+
* sync on client_id / redirect_uri / endpoints.
|
|
8
|
+
*
|
|
9
|
+
* These values come from the Gemini CLI Workspace extension's
|
|
10
|
+
* `workspace-server/src/utils/config.ts` — using the same client_id
|
|
11
|
+
* + redirect_uri lets us avoid the 7-day testing-mode grant expiry.
|
|
12
|
+
*
|
|
13
|
+
* @module config/oauth.config
|
|
14
|
+
*/
|
|
15
|
+
/** OAuth client_id for the Gemini CLI Workspace extension's published app. */
|
|
16
|
+
export const GOOGLE_OAUTH_CLIENT_ID = '338689075775-o75k922vn5fdl18qergr96rp8g63e4d7.apps.googleusercontent.com';
|
|
17
|
+
/** Redirect URI the Gemini CLI Workspace cloud function is registered for. */
|
|
18
|
+
export const GOOGLE_OAUTH_REDIRECT_URI = 'https://google-workspace-extension.geminicli.com';
|
|
19
|
+
/** Base URL of Google's OAuth 2.0 authorization endpoint. */
|
|
20
|
+
export const GOOGLE_OAUTH_AUTH_BASE = 'https://accounts.google.com/o/oauth2/v2/auth';
|
|
21
|
+
/** Cloud Function base URL where the extension's `/refreshToken` lives. */
|
|
22
|
+
export const GEMINI_CLI_CLOUD_FUNCTION_URL = 'https://google-workspace-extension.geminicli.com';
|
|
23
|
+
/** Path on the cloud function used for token refresh calls. */
|
|
24
|
+
export const GEMINI_CLI_REFRESH_PATH = '/refreshToken';
|
|
25
|
+
/** Google's userinfo endpoint — used to resolve an OAuth token's account email. */
|
|
26
|
+
export const GOOGLE_USERINFO_ENDPOINT = 'https://www.googleapis.com/oauth2/v3/userinfo';
|
|
27
|
+
/**
|
|
28
|
+
* Default scope set for a broad Workspace grant — covers the common Gmail,
|
|
29
|
+
* Drive, Docs, Calendar, and Photos read paths used by marketplace skills.
|
|
30
|
+
* Callers of `/oauth/google/start` may override via the request body.
|
|
31
|
+
*/
|
|
32
|
+
export const DEFAULT_GOOGLE_SCOPES = [
|
|
33
|
+
'openid',
|
|
34
|
+
'https://www.googleapis.com/auth/userinfo.email',
|
|
35
|
+
'https://www.googleapis.com/auth/userinfo.profile',
|
|
36
|
+
'https://www.googleapis.com/auth/gmail.readonly',
|
|
37
|
+
'https://www.googleapis.com/auth/gmail.send',
|
|
38
|
+
'https://www.googleapis.com/auth/drive.readonly',
|
|
39
|
+
'https://www.googleapis.com/auth/drive.file',
|
|
40
|
+
'https://www.googleapis.com/auth/documents.readonly',
|
|
41
|
+
'https://www.googleapis.com/auth/calendar.readonly',
|
|
42
|
+
'https://www.googleapis.com/auth/calendar.events',
|
|
43
|
+
'https://www.googleapis.com/auth/photoslibrary.readonly',
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=oauth.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.config.js","sourceRoot":"","sources":["../../../../../backend/src/config/oauth.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GACjC,0EAA0E,CAAC;AAE7E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GACpC,kDAAkD,CAAC;AAErD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GACjC,8CAA8C,CAAC;AAEjD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,6BAA6B,GACxC,kDAAkD,CAAC;AAErD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,mFAAmF;AACnF,MAAM,CAAC,MAAM,wBAAwB,GACnC,+CAA+C,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,QAAQ;IACR,gDAAgD;IAChD,kDAAkD;IAClD,gDAAgD;IAChD,4CAA4C;IAC5C,gDAAgD;IAChD,4CAA4C;IAC5C,oDAAoD;IACpD,mDAAmD;IACnD,iDAAiD;IACjD,wDAAwD;CACzD,CAAC"}
|