@treeseed/sdk 0.6.7 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/copilot.d.ts +15 -0
- package/dist/copilot.js +75 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +18 -0
- package/dist/managed-dependencies.d.ts +56 -0
- package/dist/managed-dependencies.js +668 -0
- package/dist/operations/providers/default.js +30 -1
- package/dist/operations/services/commit-message-provider.d.ts +33 -0
- package/dist/operations/services/commit-message-provider.js +319 -0
- package/dist/operations/services/config-runtime.js +41 -20
- package/dist/operations/services/git-remote-policy.d.ts +9 -0
- package/dist/operations/services/git-remote-policy.js +55 -0
- package/dist/operations/services/git-workflow.js +22 -3
- package/dist/operations/services/github-api.js +9 -4
- package/dist/operations/services/knowledge-coop-launch.js +4 -0
- package/dist/operations/services/local-dev.js +7 -2
- package/dist/operations/services/package-reference-policy.d.ts +70 -0
- package/dist/operations/services/package-reference-policy.js +314 -0
- package/dist/operations/services/project-platform.d.ts +4 -0
- package/dist/operations/services/project-platform.js +28 -4
- package/dist/operations/services/railway-deploy.d.ts +4 -1
- package/dist/operations/services/railway-deploy.js +76 -38
- package/dist/operations/services/repository-save-orchestrator.d.ts +172 -0
- package/dist/operations/services/repository-save-orchestrator.js +1462 -0
- package/dist/operations/services/workspace-dependency-mode.d.ts +70 -0
- package/dist/operations/services/workspace-dependency-mode.js +404 -0
- package/dist/operations/services/workspace-preflight.js +5 -0
- package/dist/operations/services/workspace-save.js +10 -6
- package/dist/operations-registry.js +5 -0
- package/dist/operations-types.d.ts +1 -0
- package/dist/platform/books-data.js +4 -1
- package/dist/platform/env.yaml +6 -3
- package/dist/reconcile/builtin-adapters.js +37 -7
- package/dist/scripts/cleanup-markdown.js +4 -0
- package/dist/scripts/publish-package.js +5 -0
- package/dist/scripts/tenant-workflow-action.js +11 -2
- package/dist/verification.js +24 -12
- package/dist/workflow/operations.d.ts +381 -55
- package/dist/workflow/operations.js +718 -258
- package/dist/workflow-state.d.ts +40 -1
- package/dist/workflow-state.js +220 -17
- package/dist/workflow-support.d.ts +3 -0
- package/dist/workflow-support.js +34 -0
- package/dist/workflow.d.ts +19 -3
- package/dist/workflow.js +3 -3
- package/dist/wrangler-d1.js +6 -1
- package/package.json +17 -1
- package/templates/github/deploy.workflow.yml +24 -14
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type TreeseedCopilotTaskInput = {
|
|
2
|
+
prompt: string;
|
|
3
|
+
cwd?: string;
|
|
4
|
+
model?: string;
|
|
5
|
+
allowTools?: string[];
|
|
6
|
+
env?: NodeJS.ProcessEnv;
|
|
7
|
+
timeoutMs?: number;
|
|
8
|
+
};
|
|
9
|
+
export type TreeseedCopilotTaskResult = {
|
|
10
|
+
status: 'completed' | 'failed';
|
|
11
|
+
summary: string;
|
|
12
|
+
stdout: string;
|
|
13
|
+
stderr: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function runTreeseedCopilotTask(input: TreeseedCopilotTaskInput): Promise<TreeseedCopilotTaskResult>;
|
package/dist/copilot.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { approveAll, CopilotClient } from "@github/copilot-sdk";
|
|
2
|
+
import {
|
|
3
|
+
createTreeseedManagedToolEnv,
|
|
4
|
+
resolveTreeseedToolBinary
|
|
5
|
+
} from "./managed-dependencies.js";
|
|
6
|
+
async function runTreeseedCopilotTask(input) {
|
|
7
|
+
const cwd = input.cwd ?? process.cwd();
|
|
8
|
+
const env = createTreeseedManagedToolEnv(input.env ?? process.env);
|
|
9
|
+
const cliPath = resolveTreeseedToolBinary("copilot", { env });
|
|
10
|
+
if (!cliPath) {
|
|
11
|
+
return {
|
|
12
|
+
status: "failed",
|
|
13
|
+
summary: "Copilot task failed.",
|
|
14
|
+
stdout: "",
|
|
15
|
+
stderr: "Copilot CLI is unavailable."
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const client = new CopilotClient({
|
|
19
|
+
cliPath,
|
|
20
|
+
cwd,
|
|
21
|
+
env,
|
|
22
|
+
logLevel: "error",
|
|
23
|
+
useStdio: true
|
|
24
|
+
});
|
|
25
|
+
let session = null;
|
|
26
|
+
const messages = [];
|
|
27
|
+
const errors = [];
|
|
28
|
+
try {
|
|
29
|
+
session = await client.createSession({
|
|
30
|
+
clientName: "treeseed",
|
|
31
|
+
model: input.model,
|
|
32
|
+
availableTools: input.allowTools && input.allowTools.length > 0 ? input.allowTools : void 0,
|
|
33
|
+
onPermissionRequest: approveAll,
|
|
34
|
+
workingDirectory: cwd,
|
|
35
|
+
onEvent(event) {
|
|
36
|
+
if (event.type === "assistant.message" && event.data.content.trim()) {
|
|
37
|
+
messages.push(event.data.content);
|
|
38
|
+
}
|
|
39
|
+
if (event.type === "session.error") {
|
|
40
|
+
errors.push(event.data.message);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const finalMessage = await session.sendAndWait({ prompt: input.prompt }, input.timeoutMs ?? 10 * 60 * 1e3);
|
|
45
|
+
const stdout = finalMessage?.data.content ?? messages.at(-1) ?? messages.join("\n\n");
|
|
46
|
+
return {
|
|
47
|
+
status: errors.length > 0 ? "failed" : "completed",
|
|
48
|
+
summary: errors.length > 0 ? "Copilot task failed." : "Copilot task completed.",
|
|
49
|
+
stdout,
|
|
50
|
+
stderr: errors.join("\n")
|
|
51
|
+
};
|
|
52
|
+
} catch (error) {
|
|
53
|
+
return {
|
|
54
|
+
status: "failed",
|
|
55
|
+
summary: "Copilot task failed.",
|
|
56
|
+
stdout: messages.join("\n\n"),
|
|
57
|
+
stderr: [
|
|
58
|
+
...errors,
|
|
59
|
+
error instanceof Error ? error.message : String(error)
|
|
60
|
+
].filter(Boolean).join("\n")
|
|
61
|
+
};
|
|
62
|
+
} finally {
|
|
63
|
+
try {
|
|
64
|
+
await session?.disconnect();
|
|
65
|
+
} catch {
|
|
66
|
+
}
|
|
67
|
+
const stopErrors = await client.stop();
|
|
68
|
+
if (stopErrors.length > 0 && errors.length === 0) {
|
|
69
|
+
await client.forceStop();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
runTreeseedCopilotTask
|
|
75
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export { parseGraphDsl } from './graph/dsl.ts';
|
|
|
14
14
|
export { createDefaultGraphRankingProvider, DEFAULT_GRAPH_RANKING_PROVIDER } from './graph/ranking.ts';
|
|
15
15
|
export { BUILTIN_MODEL_REGISTRY, MODEL_REGISTRY, buildBuiltinModelRegistry, buildModelRegistry, buildScopedModelRegistry, mergeModelRegistries, resolveModelDefinition, } from './model-registry.ts';
|
|
16
16
|
export { normalizeAgentCliOptions, buildCopilotAllowToolArgs } from './cli-tools.ts';
|
|
17
|
+
export { collectTreeseedDependencyStatus, createTreeseedManagedToolEnv, formatTreeseedDependencyReport, installTreeseedDependencies, resolveTreeseedToolBinary, resolveTreeseedToolCommand, } from './managed-dependencies.ts';
|
|
18
|
+
export { runTreeseedCopilotTask, type TreeseedCopilotTaskInput, type TreeseedCopilotTaskResult, } from './copilot.ts';
|
|
17
19
|
export { findDispatchCapability, listSdkDispatchCapabilities, listWorkflowDispatchCapabilities, } from './dispatch.ts';
|
|
18
20
|
export { executeSdkOperation, findSdkOperation, listSdkOperationNames, } from './sdk-dispatch.ts';
|
|
19
21
|
export { resolveSdkRecordVersion } from './sdk-version.ts';
|
package/dist/index.js
CHANGED
|
@@ -84,6 +84,17 @@ import {
|
|
|
84
84
|
resolveModelDefinition
|
|
85
85
|
} from "./model-registry.js";
|
|
86
86
|
import { normalizeAgentCliOptions, buildCopilotAllowToolArgs } from "./cli-tools.js";
|
|
87
|
+
import {
|
|
88
|
+
collectTreeseedDependencyStatus,
|
|
89
|
+
createTreeseedManagedToolEnv,
|
|
90
|
+
formatTreeseedDependencyReport,
|
|
91
|
+
installTreeseedDependencies,
|
|
92
|
+
resolveTreeseedToolBinary,
|
|
93
|
+
resolveTreeseedToolCommand
|
|
94
|
+
} from "./managed-dependencies.js";
|
|
95
|
+
import {
|
|
96
|
+
runTreeseedCopilotTask
|
|
97
|
+
} from "./copilot.js";
|
|
87
98
|
import {
|
|
88
99
|
findDispatchCapability,
|
|
89
100
|
listSdkDispatchCapabilities,
|
|
@@ -183,6 +194,7 @@ export {
|
|
|
183
194
|
buildModelRegistry,
|
|
184
195
|
buildScopedModelRegistry,
|
|
185
196
|
canonicalizeFrontmatter,
|
|
197
|
+
collectTreeseedDependencyStatus,
|
|
186
198
|
collectTreeseedReconcileStatus,
|
|
187
199
|
createControlPlaneReporter,
|
|
188
200
|
createDefaultGraphRankingProvider,
|
|
@@ -190,6 +202,7 @@ export {
|
|
|
190
202
|
createPublishedContentPipeline,
|
|
191
203
|
createTeamScopedR2OverlayContentPublishProvider,
|
|
192
204
|
createTeamScopedR2OverlayContentRuntimeProvider,
|
|
205
|
+
createTreeseedManagedToolEnv,
|
|
193
206
|
createTreeseedReconcileRegistry,
|
|
194
207
|
deriveTreeseedDesiredUnits,
|
|
195
208
|
destroyTreeseedTargetUnits,
|
|
@@ -201,10 +214,12 @@ export {
|
|
|
201
214
|
findDispatchCapability,
|
|
202
215
|
findSdkOperation,
|
|
203
216
|
findTreeseedOperation,
|
|
217
|
+
formatTreeseedDependencyReport,
|
|
204
218
|
getRailwayAuthProfile,
|
|
205
219
|
getTenantContentRoot,
|
|
206
220
|
getTreeseedVerifyDriverStatus,
|
|
207
221
|
importKnowledgeCoopKnowledgePack,
|
|
222
|
+
installTreeseedDependencies,
|
|
208
223
|
isTeamScopedR2ContentEnabled,
|
|
209
224
|
listRailwayEnvironments,
|
|
210
225
|
listRailwayProjects,
|
|
@@ -254,6 +269,9 @@ export {
|
|
|
254
269
|
resolveSdkRecordVersion,
|
|
255
270
|
resolveTeamScopedContentLocator,
|
|
256
271
|
resolveTreeseedTenantRoot,
|
|
272
|
+
resolveTreeseedToolBinary,
|
|
273
|
+
resolveTreeseedToolCommand,
|
|
274
|
+
runTreeseedCopilotTask,
|
|
257
275
|
runTreeseedVerifyDriver,
|
|
258
276
|
signEditorialPreviewToken,
|
|
259
277
|
tenantFeatureEnabled,
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
export type TreeseedManagedToolName = 'git' | 'gh' | 'wrangler' | 'railway' | 'copilot' | 'copilot-sdk' | 'copilot-language-server' | 'docker' | 'gh-act';
|
|
3
|
+
export type TreeseedManagedDependencyStatus = 'already-present' | 'installed' | 'repaired' | 'skipped' | 'missing' | 'failed' | 'unsupported';
|
|
4
|
+
export type TreeseedDependencyReport = {
|
|
5
|
+
name: TreeseedManagedToolName;
|
|
6
|
+
kind: 'system' | 'download' | 'npm' | 'extension';
|
|
7
|
+
version?: string;
|
|
8
|
+
source: 'system' | 'managed-cache' | 'package' | 'managed-gh-config' | 'not-applicable';
|
|
9
|
+
binaryPath: string | null;
|
|
10
|
+
status: TreeseedManagedDependencyStatus;
|
|
11
|
+
required: boolean;
|
|
12
|
+
detail: string;
|
|
13
|
+
};
|
|
14
|
+
export type TreeseedNpmInstallReport = {
|
|
15
|
+
root: string | null;
|
|
16
|
+
command: string[];
|
|
17
|
+
status: 'already-present' | 'installed' | 'skipped' | 'failed';
|
|
18
|
+
exitCode: number | null;
|
|
19
|
+
detail: string;
|
|
20
|
+
};
|
|
21
|
+
export type TreeseedDependencyInstallResult = {
|
|
22
|
+
ok: boolean;
|
|
23
|
+
toolsHome: string;
|
|
24
|
+
ghConfigDir: string;
|
|
25
|
+
npmInstalls: TreeseedNpmInstallReport[];
|
|
26
|
+
reports: TreeseedDependencyReport[];
|
|
27
|
+
};
|
|
28
|
+
type DependencyInstallerOptions = {
|
|
29
|
+
tenantRoot?: string;
|
|
30
|
+
force?: boolean;
|
|
31
|
+
env?: NodeJS.ProcessEnv;
|
|
32
|
+
write?: (line: string) => void;
|
|
33
|
+
downloadFile?: (url: string, targetPath: string) => Promise<void>;
|
|
34
|
+
spawn?: typeof spawnSync;
|
|
35
|
+
};
|
|
36
|
+
export declare function createTreeseedManagedToolEnv(env?: NodeJS.ProcessEnv): {
|
|
37
|
+
[x: string]: string | undefined;
|
|
38
|
+
GH_CONFIG_DIR: string;
|
|
39
|
+
GH_PROMPT_DISABLED: string;
|
|
40
|
+
GH_NO_UPDATE_NOTIFIER: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function formatTreeseedDependencyFailureDetails(result: Pick<TreeseedDependencyInstallResult, 'npmInstalls' | 'reports'>): string;
|
|
43
|
+
export declare function resolveTreeseedToolBinary(toolName: TreeseedManagedToolName, options?: {
|
|
44
|
+
env?: NodeJS.ProcessEnv;
|
|
45
|
+
}): string | null;
|
|
46
|
+
export declare function resolveTreeseedToolCommand(toolName: TreeseedManagedToolName, options?: {
|
|
47
|
+
env?: NodeJS.ProcessEnv;
|
|
48
|
+
}): {
|
|
49
|
+
command: string;
|
|
50
|
+
argsPrefix: string[];
|
|
51
|
+
binaryPath: string;
|
|
52
|
+
} | null;
|
|
53
|
+
export declare function installTreeseedDependencies(options?: DependencyInstallerOptions): Promise<TreeseedDependencyInstallResult>;
|
|
54
|
+
export declare function collectTreeseedDependencyStatus(options?: DependencyInstallerOptions): TreeseedDependencyInstallResult;
|
|
55
|
+
export declare function formatTreeseedDependencyReport(result: TreeseedDependencyInstallResult): string;
|
|
56
|
+
export {};
|