agentblueprint 0.7.15 → 0.7.19

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.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -1
  3. package/dist/__tests__/cli.test.js +2 -0
  4. package/dist/__tests__/cli.test.js.map +1 -1
  5. package/dist/__tests__/generation-client.test.d.ts +1 -0
  6. package/dist/__tests__/generation-client.test.js +96 -0
  7. package/dist/__tests__/generation-client.test.js.map +1 -0
  8. package/dist/__tests__/generation-tools.test.d.ts +1 -0
  9. package/dist/__tests__/generation-tools.test.js +168 -0
  10. package/dist/__tests__/generation-tools.test.js.map +1 -0
  11. package/dist/__tests__/handoff.test.d.ts +1 -0
  12. package/dist/__tests__/handoff.test.js +58 -0
  13. package/dist/__tests__/handoff.test.js.map +1 -0
  14. package/dist/__tests__/renderers.test.js +122 -14
  15. package/dist/__tests__/renderers.test.js.map +1 -1
  16. package/dist/__tests__/tools.test.js +8 -2
  17. package/dist/__tests__/tools.test.js.map +1 -1
  18. package/dist/cli.js +66 -0
  19. package/dist/cli.js.map +1 -1
  20. package/dist/client.d.ts +79 -0
  21. package/dist/client.js +32 -19
  22. package/dist/client.js.map +1 -1
  23. package/dist/errors.d.ts +2 -1
  24. package/dist/errors.js +12 -1
  25. package/dist/errors.js.map +1 -1
  26. package/dist/fetch-blueprint.js +3 -2
  27. package/dist/fetch-blueprint.js.map +1 -1
  28. package/dist/handoff.d.ts +18 -0
  29. package/dist/handoff.js +97 -0
  30. package/dist/handoff.js.map +1 -0
  31. package/dist/renderers.js +422 -14
  32. package/dist/renderers.js.map +1 -1
  33. package/dist/server.js +40 -0
  34. package/dist/server.js.map +1 -1
  35. package/dist/tools/create-business-profile.d.ts +17 -0
  36. package/dist/tools/create-business-profile.js +28 -0
  37. package/dist/tools/create-business-profile.js.map +1 -0
  38. package/dist/tools/generate-blueprint.d.ts +21 -0
  39. package/dist/tools/generate-blueprint.js +25 -0
  40. package/dist/tools/generate-blueprint.js.map +1 -0
  41. package/dist/tools/generate-use-cases.d.ts +21 -0
  42. package/dist/tools/generate-use-cases.js +29 -0
  43. package/dist/tools/generate-use-cases.js.map +1 -0
  44. package/dist/tools/get-generation-status.d.ts +18 -0
  45. package/dist/tools/get-generation-status.js +41 -0
  46. package/dist/tools/get-generation-status.js.map +1 -0
  47. package/dist/tools/trigger-full-pipeline.d.ts +20 -0
  48. package/dist/tools/trigger-full-pipeline.js +24 -0
  49. package/dist/tools/trigger-full-pipeline.js.map +1 -0
  50. package/package.json +4 -3
@@ -0,0 +1,97 @@
1
+ import { AgentBlueprintClient } from './client.js';
2
+ import { runDownload } from './download.js';
3
+ import { saveToken } from './token-store.js';
4
+ export function parseHandoffArgs(args) {
5
+ const result = {
6
+ dir: '.agent-blueprint',
7
+ };
8
+ for (let i = 0; i < args.length; i++) {
9
+ const arg = args[i];
10
+ switch (arg) {
11
+ case '--token':
12
+ result.token = args[++i];
13
+ break;
14
+ case '--api-url':
15
+ result.apiUrl = args[++i];
16
+ break;
17
+ case '--dir':
18
+ result.dir = args[++i];
19
+ break;
20
+ default:
21
+ break;
22
+ }
23
+ }
24
+ return result;
25
+ }
26
+ export async function acceptHandoffToken(apiUrl, token) {
27
+ const url = new URL('/api/v1/handoffs/accept', apiUrl);
28
+ const response = await fetch(url.toString(), {
29
+ method: 'POST',
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ 'Accept': 'application/json',
33
+ },
34
+ body: JSON.stringify({ token }),
35
+ });
36
+ if (!response.ok) {
37
+ const body = await response.json().catch(() => ({ error: response.statusText }));
38
+ const message = typeof body?.error === 'string'
39
+ ? body.error
40
+ : `Handoff exchange failed: ${response.status}`;
41
+ throw new Error(message);
42
+ }
43
+ const json = await response.json();
44
+ if (!json.success || !json.data?.apiToken) {
45
+ throw new Error(json.error || 'Handoff exchange did not return an API token');
46
+ }
47
+ return json.data;
48
+ }
49
+ export async function runHandoffAccept(args) {
50
+ if (!args.token) {
51
+ console.error('Error: --token <handoff-token> is required.');
52
+ console.error('Usage: agentblueprint handoff accept --token <token> [--api-url <url>] [--dir <path>]');
53
+ process.exit(1);
54
+ }
55
+ const apiUrl = args.apiUrl || process.env.AGENT_BLUEPRINT_API_URL || 'https://app.agentblueprint.ai';
56
+ console.error('Accepting Agent Blueprint handoff...');
57
+ const result = await acceptHandoffToken(apiUrl, args.token);
58
+ const resolvedApiUrl = result.apiUrl || apiUrl;
59
+ saveToken(result.apiToken, resolvedApiUrl);
60
+ console.error('Agent Blueprint credentials saved locally.');
61
+ if (result.expiresAt) {
62
+ console.error(`Local credential expires: ${result.expiresAt}`);
63
+ }
64
+ console.error('');
65
+ const customerOrgId = result.customerOrgId || result.organizationId;
66
+ if (result.blueprintId) {
67
+ console.error('Blueprint context found. Downloading implementation workspace...');
68
+ await runDownload({ apiKey: result.apiToken, apiUrl: resolvedApiUrl }, {
69
+ blueprintId: result.blueprintId,
70
+ customerOrgId,
71
+ platform: result.platform || undefined,
72
+ dir: args.dir,
73
+ list: false,
74
+ });
75
+ return;
76
+ }
77
+ const client = new AgentBlueprintClient({ apiKey: result.apiToken, apiUrl: resolvedApiUrl });
78
+ const identity = await client.getIdentity().catch(() => null);
79
+ if (identity?.email || identity?.organizationName) {
80
+ const label = identity.email
81
+ ? `${identity.email} (${identity.organizationName ?? identity.organizationId})`
82
+ : identity.organizationName ?? identity.organizationId;
83
+ console.error(`Connected as: ${label}`);
84
+ }
85
+ console.error('No blueprint exists for this handoff yet.');
86
+ console.error('');
87
+ console.error('Next steps for the coding agent:');
88
+ console.error('1. Read the business profile with `agentblueprint get business-profile`.');
89
+ console.error('2. Interview the user for missing profile facts and update via MCP/CLI write tools.');
90
+ console.error('3. Generate or update use cases, then trigger blueprint generation when ready.');
91
+ console.error('4. After a blueprint exists, run `agentblueprint download <blueprint-id>`.');
92
+ if (result.suggestedNextAction) {
93
+ console.error('');
94
+ console.error(result.suggestedNextAction);
95
+ }
96
+ }
97
+ //# sourceMappingURL=handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}