crewly 1.20.303 → 1.20.305
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/orchestrator/move-team/SKILL.md +53 -0
- package/config/skills/orchestrator/move-team/execute.sh +42 -0
- package/dist/backend/backend/src/constants.d.ts +82 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +82 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.d.ts +39 -0
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.js +211 -0
- package/dist/backend/backend/src/controllers/team-move/team-move.controller.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +22 -3
- 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/services/cloud/cloud-sync.types.d.ts +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.d.ts +18 -0
- package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +16 -0
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +19 -0
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +46 -0
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +2 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +9 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +25 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +41 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/team-move/team-move-archive.d.ts +122 -0
- package/dist/backend/backend/src/services/team-move/team-move-archive.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-archive.js +202 -0
- package/dist/backend/backend/src/services/team-move/team-move-archive.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts +59 -0
- package/dist/backend/backend/src/services/team-move/team-move-chat.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-chat.js +133 -0
- package/dist/backend/backend/src/services/team-move/team-move-chat.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-cloud.client.d.ts +102 -0
- package/dist/backend/backend/src/services/team-move/team-move-cloud.client.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-cloud.client.js +217 -0
- package/dist/backend/backend/src/services/team-move/team-move-cloud.client.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-crypto.d.ts +102 -0
- package/dist/backend/backend/src/services/team-move/team-move-crypto.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-crypto.js +348 -0
- package/dist/backend/backend/src/services/team-move/team-move-crypto.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-driver.service.d.ts +209 -0
- package/dist/backend/backend/src/services/team-move/team-move-driver.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-driver.service.js +504 -0
- package/dist/backend/backend/src/services/team-move/team-move-driver.service.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts +182 -0
- package/dist/backend/backend/src/services/team-move/team-move-exporter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js +537 -0
- package/dist/backend/backend/src/services/team-move/team-move-exporter.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-fs.d.ts +157 -0
- package/dist/backend/backend/src/services/team-move/team-move-fs.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-fs.js +298 -0
- package/dist/backend/backend/src/services/team-move/team-move-fs.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-git.d.ts +69 -0
- package/dist/backend/backend/src/services/team-move/team-move-git.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-git.js +198 -0
- package/dist/backend/backend/src/services/team-move/team-move-git.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts +121 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.js +473 -0
- package/dist/backend/backend/src/services/team-move/team-move-importer.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-journal.d.ts +110 -0
- package/dist/backend/backend/src/services/team-move/team-move-journal.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-journal.js +198 -0
- package/dist/backend/backend/src/services/team-move/team-move-journal.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-machines.d.ts +62 -0
- package/dist/backend/backend/src/services/team-move/team-move-machines.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-machines.js +95 -0
- package/dist/backend/backend/src/services/team-move/team-move-machines.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-preflight.d.ts +71 -0
- package/dist/backend/backend/src/services/team-move/team-move-preflight.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-preflight.js +102 -0
- package/dist/backend/backend/src/services/team-move/team-move-preflight.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts +29 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js +173 -0
- package/dist/backend/backend/src/services/team-move/team-move-runtime.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-secret-scan.d.ts +50 -0
- package/dist/backend/backend/src/services/team-move/team-move-secret-scan.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-secret-scan.js +96 -0
- package/dist/backend/backend/src/services/team-move/team-move-secret-scan.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-select.d.ts +94 -0
- package/dist/backend/backend/src/services/team-move/team-move-select.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move-select.js +124 -0
- package/dist/backend/backend/src/services/team-move/team-move-select.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.fixture.d.ts +46 -0
- package/dist/backend/backend/src/services/team-move/team-move.fixture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.fixture.js +202 -0
- package/dist/backend/backend/src/services/team-move/team-move.fixture.js.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts +279 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.js +44 -0
- package/dist/backend/backend/src/services/team-move/team-move.types.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +82 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +82 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +1 -0
- package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.d.ts +18 -0
- package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js +16 -0
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +19 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +46 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +9 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +25 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +41 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/cli/src/commands/team-move.d.ts +68 -0
- package/dist/cli/cli/src/commands/team-move.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/team-move.js +159 -0
- package/dist/cli/cli/src/commands/team-move.js.map +1 -0
- package/dist/cli/cli/src/index.js +33 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team move exporter (source machine).
|
|
3
|
+
*
|
|
4
|
+
* Collects everything Crewly owns about ONE team into a staging directory,
|
|
5
|
+
* writes a manifest with a hash for every file, runs the secret scan, and (in
|
|
6
|
+
* {@link buildEncryptedPackage}) turns the staging directory into an encrypted
|
|
7
|
+
* `tar.gz` stream.
|
|
8
|
+
*
|
|
9
|
+
* Package layout (POSIX paths):
|
|
10
|
+
*
|
|
11
|
+
* manifest.json
|
|
12
|
+
* team/** the team's folder: config, prompts, norms, SOPs,
|
|
13
|
+
* wiki vault, cron tasks
|
|
14
|
+
* agents/<session>/** agent memory, standing answers, session summaries
|
|
15
|
+
* handover/<file> newest handover notes per agent
|
|
16
|
+
* records/*.json task-pool items, decisions, chat channels and
|
|
17
|
+
* rooms, Slack channel mapping, scheduled messages
|
|
18
|
+
* projects/<id>/data/** `<project>/.crewly/**` (or the package-tree stores)
|
|
19
|
+
*
|
|
20
|
+
* Not in it: credentials, tokens, runtime logins, logs and transcripts,
|
|
21
|
+
* node_modules/build output and repository working trees (the repo list in
|
|
22
|
+
* the manifest lets the target clone them).
|
|
23
|
+
*
|
|
24
|
+
* @module services/team-move/team-move-exporter
|
|
25
|
+
*/
|
|
26
|
+
import type { Project, Team } from '../../types/index.js';
|
|
27
|
+
import { type SecretEnvValue } from '../../utils/secret-env.js';
|
|
28
|
+
import { StagingArea } from './team-move-fs.js';
|
|
29
|
+
import { inspectRepo as defaultInspectRepo } from './team-move-git.js';
|
|
30
|
+
import type { CloudManifestSummary, PackageFileEntry, PackageRepo, TeamMoveManifest } from './team-move.types.js';
|
|
31
|
+
/** Thrown when a repository holds work that exists only on the source. */
|
|
32
|
+
export declare class TeamMoveBlockedError extends Error {
|
|
33
|
+
readonly lines: string[];
|
|
34
|
+
constructor(lines: string[]);
|
|
35
|
+
}
|
|
36
|
+
/** Collaborators of the exporter. */
|
|
37
|
+
export interface ExportDeps {
|
|
38
|
+
/** Crewly home of this machine. */
|
|
39
|
+
home?: string;
|
|
40
|
+
getTeams: () => Promise<Team[]>;
|
|
41
|
+
getProjects: () => Promise<Project[]>;
|
|
42
|
+
crewlyVersion: string;
|
|
43
|
+
source: {
|
|
44
|
+
instanceId: string | null;
|
|
45
|
+
deviceName: string | null;
|
|
46
|
+
};
|
|
47
|
+
/** Exact secret values this machine holds (env, settings). */
|
|
48
|
+
knownSecrets?: () => Promise<SecretEnvValue[]>;
|
|
49
|
+
inspectRepo?: typeof defaultInspectRepo;
|
|
50
|
+
now?: () => string;
|
|
51
|
+
/** Caps for the working files of non-git projects; default from constants / env. */
|
|
52
|
+
workLimits?: WorkFileLimits;
|
|
53
|
+
}
|
|
54
|
+
/** Size caps for the working files of projects that are not git repositories. */
|
|
55
|
+
export interface WorkFileLimits {
|
|
56
|
+
/** All such projects together. */
|
|
57
|
+
totalBytes: number;
|
|
58
|
+
/** One file. */
|
|
59
|
+
fileBytes: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The caps for non-git project files: constants, overridable in megabytes by
|
|
63
|
+
* `CREWLY_TEAM_MOVE_WORK_MAX_MB` and `CREWLY_TEAM_MOVE_WORK_FILE_MAX_MB`.
|
|
64
|
+
*
|
|
65
|
+
* @param env - Environment to read overrides from
|
|
66
|
+
* @returns The caps in bytes
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolveWorkFileLimits(env?: NodeJS.ProcessEnv): WorkFileLimits;
|
|
69
|
+
/** Whether a repo record says the folder is not a git repository (its files travel instead of being cloned). */
|
|
70
|
+
export declare function isPlainFolder(repo: PackageRepo): boolean;
|
|
71
|
+
/** Options of one export. */
|
|
72
|
+
export interface ExportOptions {
|
|
73
|
+
teamId: string;
|
|
74
|
+
moveId: string;
|
|
75
|
+
/** Directory the package is assembled in (created). */
|
|
76
|
+
stagingDir: string;
|
|
77
|
+
/** Move although a repository has uncommitted or unpushed work. */
|
|
78
|
+
allowDirty?: boolean;
|
|
79
|
+
/** Leave files with secrets out of the package instead of aborting (only free-form notes and project files). */
|
|
80
|
+
skipFlagged?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/** What an export produced. */
|
|
83
|
+
export interface ExportResult {
|
|
84
|
+
manifest: TeamMoveManifest;
|
|
85
|
+
staging: StagingArea;
|
|
86
|
+
/** What Cloud receives with `package/init`. */
|
|
87
|
+
summary: CloudManifestSummary;
|
|
88
|
+
/** Lines describing uncommitted/unpushed work that was allowed through. */
|
|
89
|
+
dirtyRepos: string[];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Prepare a team config for another machine: nothing is running there yet.
|
|
93
|
+
*
|
|
94
|
+
* @param raw - Parsed `config.json`
|
|
95
|
+
* @returns Copy with runtime state cleared
|
|
96
|
+
*/
|
|
97
|
+
export declare function sanitizeTeamForMove(raw: Record<string, unknown>): Record<string, unknown>;
|
|
98
|
+
/** The exporter. */
|
|
99
|
+
export declare class TeamMoveExporter {
|
|
100
|
+
private readonly deps;
|
|
101
|
+
private readonly home;
|
|
102
|
+
private readonly now;
|
|
103
|
+
private readonly inspect;
|
|
104
|
+
constructor(deps: ExportDeps);
|
|
105
|
+
/**
|
|
106
|
+
* Check, before anything is built, that no repository holds work only this
|
|
107
|
+
* machine has. Used by the REST entry point so the owner learns what to
|
|
108
|
+
* push before a move is even requested.
|
|
109
|
+
*
|
|
110
|
+
* @param teamId - Team to move
|
|
111
|
+
* @returns The repos and the lines that block the move
|
|
112
|
+
*/
|
|
113
|
+
checkRepos(teamId: string): Promise<{
|
|
114
|
+
repos: PackageRepo[];
|
|
115
|
+
blocking: string[];
|
|
116
|
+
}>;
|
|
117
|
+
private requireTeam;
|
|
118
|
+
private teamProjects;
|
|
119
|
+
/**
|
|
120
|
+
* Collect, scan and describe the package.
|
|
121
|
+
*
|
|
122
|
+
* @param options - Team, move, staging directory, policy flags
|
|
123
|
+
* @returns Manifest, staging area and the Cloud summary
|
|
124
|
+
* @throws TeamMoveBlockedError for unpushed work; TeamMoveSecretScanError for secrets
|
|
125
|
+
*/
|
|
126
|
+
export(options: ExportOptions): Promise<ExportResult>;
|
|
127
|
+
/** The things a move deliberately leaves out, shown to the owner. */
|
|
128
|
+
private notMovedList;
|
|
129
|
+
/** Global-store records of the team. */
|
|
130
|
+
private collectRecords;
|
|
131
|
+
/**
|
|
132
|
+
* Copy each project's Crewly data under the size caps.
|
|
133
|
+
*
|
|
134
|
+
* @returns Manifest entries of the projects
|
|
135
|
+
*/
|
|
136
|
+
private collectProjects;
|
|
137
|
+
/**
|
|
138
|
+
* Copy the working files of projects that are not git repositories (a git
|
|
139
|
+
* project is cloned on the target instead). Dependencies, build output,
|
|
140
|
+
* logs and `.DS_Store` stay out; the caps leave the biggest files behind
|
|
141
|
+
* and every skipped file is listed in the manifest.
|
|
142
|
+
*/
|
|
143
|
+
private collectWorkFiles;
|
|
144
|
+
/** Tools and connectors the team's own words mention (prompts, norms, SOPs, cron tasks). */
|
|
145
|
+
private detectNeeds;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The small summary Cloud receives (kept far below its 64 KB limit).
|
|
149
|
+
*
|
|
150
|
+
* @param manifest - Full manifest
|
|
151
|
+
* @returns Summary without file names
|
|
152
|
+
*/
|
|
153
|
+
export declare function summarize(manifest: TeamMoveManifest): CloudManifestSummary;
|
|
154
|
+
/** Result of {@link buildEncryptedPackage}. */
|
|
155
|
+
export interface EncryptedPackage {
|
|
156
|
+
/** Absolute path of the ciphertext file. */
|
|
157
|
+
file: string;
|
|
158
|
+
/** Ciphertext size in bytes. */
|
|
159
|
+
size: number;
|
|
160
|
+
/** Hex SHA-256 of the ciphertext. */
|
|
161
|
+
sha256: string;
|
|
162
|
+
/** Upload chunks (8 MiB each, the last shorter). */
|
|
163
|
+
chunks: number;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Tar+gzip a staging directory and encrypt it for the target.
|
|
167
|
+
*
|
|
168
|
+
* @param stagingDir - Directory built by {@link TeamMoveExporter.export}
|
|
169
|
+
* @param outFile - Where the ciphertext is written
|
|
170
|
+
* @param recipientPublicKey - Target's base64 X25519 public key
|
|
171
|
+
* @param moveId - Move id (bound into the encryption)
|
|
172
|
+
* @returns File, size, hash and chunk count of the ciphertext
|
|
173
|
+
*/
|
|
174
|
+
export declare function buildEncryptedPackage(stagingDir: string, outFile: string, recipientPublicKey: string, moveId: string): Promise<EncryptedPackage>;
|
|
175
|
+
/**
|
|
176
|
+
* Package entries sorted for stable comparisons in tests.
|
|
177
|
+
*
|
|
178
|
+
* @param files - Manifest file entries
|
|
179
|
+
* @returns Paths
|
|
180
|
+
*/
|
|
181
|
+
export declare function packagePaths(files: readonly PackageFileEntry[]): string[];
|
|
182
|
+
//# sourceMappingURL=team-move-exporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-move-exporter.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/team-move/team-move-exporter.ts"],"names":[],"mappings":"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"}
|