agentblueprint 0.6.24 → 0.6.26
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/__tests__/renderers.test.js +111 -0
- package/dist/__tests__/renderers.test.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/client.d.ts +12 -55
- package/dist/client.js +21 -0
- package/dist/client.js.map +1 -1
- package/dist/directives.d.ts +1 -0
- package/dist/directives.js +4 -1
- package/dist/directives.js.map +1 -1
- package/dist/download.js +7 -1
- package/dist/download.js.map +1 -1
- package/dist/fetch-blueprint.d.ts +1 -0
- package/dist/fetch-blueprint.js +6 -2
- package/dist/fetch-blueprint.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/renderers.d.ts +9 -1
- package/dist/renderers.js +66 -14
- package/dist/renderers.js.map +1 -1
- package/dist/tools/download-blueprint.js +10 -1
- package/dist/tools/download-blueprint.js.map +1 -1
- package/dist/types.d.ts +55 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +6 -1
package/dist/fetch-blueprint.js
CHANGED
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
import { renderSkillDirectory, slugify } from './renderers.js';
|
|
9
9
|
export async function fetchAndRenderBlueprint(client, blueprintId, opts) {
|
|
10
10
|
const orgId = opts.customerOrgId;
|
|
11
|
-
// Fetch all data in parallel
|
|
12
|
-
const [blueprint, businessCase, implementationPlan, useCase, businessProfile] = await Promise.all([
|
|
11
|
+
// Fetch all data in parallel (base skill included -- graceful degradation if unavailable)
|
|
12
|
+
const [blueprint, businessCase, implementationPlan, useCase, businessProfile, baseSkill] = await Promise.all([
|
|
13
13
|
client.getBlueprint(blueprintId, orgId),
|
|
14
14
|
client.getBusinessCase(blueprintId, orgId).catch(() => null),
|
|
15
15
|
client.getImplementationPlan(blueprintId, orgId).catch(() => null),
|
|
16
16
|
client.getUseCase(blueprintId, orgId).catch(() => null),
|
|
17
17
|
client.getBusinessProfile(orgId).catch(() => null),
|
|
18
|
+
client.getBaseSkill().catch(() => null),
|
|
18
19
|
]);
|
|
19
20
|
// Fetch reality data for return visits
|
|
20
21
|
const [implementationState, progress] = await Promise.all([
|
|
@@ -37,6 +38,7 @@ export async function fetchAndRenderBlueprint(client, blueprintId, opts) {
|
|
|
37
38
|
platform: vendorSkillData.platform,
|
|
38
39
|
skillName: vendorSkillData.skillName,
|
|
39
40
|
content: vendorSkillData.content,
|
|
41
|
+
files: vendorSkillData.files,
|
|
40
42
|
};
|
|
41
43
|
}
|
|
42
44
|
else {
|
|
@@ -57,6 +59,7 @@ export async function fetchAndRenderBlueprint(client, blueprintId, opts) {
|
|
|
57
59
|
generalGuide: generalGuideData?.content,
|
|
58
60
|
vendorGuide: vendorGuideInput,
|
|
59
61
|
vendorSkill: vendorSkillInput,
|
|
62
|
+
baseSkill: baseSkill ?? undefined,
|
|
60
63
|
implementationState,
|
|
61
64
|
progress,
|
|
62
65
|
};
|
|
@@ -68,6 +71,7 @@ export async function fetchAndRenderBlueprint(client, blueprintId, opts) {
|
|
|
68
71
|
slug,
|
|
69
72
|
title,
|
|
70
73
|
hasImplementationState: !!implementationState,
|
|
74
|
+
hasBaseSkill: !!baseSkill,
|
|
71
75
|
vendorSkillName: vendorSkillInput?.skillName,
|
|
72
76
|
};
|
|
73
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-blueprint.js","sourceRoot":"","sources":["../src/fetch-blueprint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-blueprint.js","sourceRoot":"","sources":["../src/fetch-blueprint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/renderers.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import type { ImplementationStateResponse, ProgressResponse } from './
|
|
1
|
+
import type { ImplementationStateResponse, ProgressResponse } from './types.js';
|
|
2
|
+
export interface SkillFile {
|
|
3
|
+
path: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
2
6
|
export interface SkillRenderInput {
|
|
3
7
|
blueprintTitle: string;
|
|
4
8
|
blueprintId: string;
|
|
@@ -17,6 +21,10 @@ export interface SkillRenderInput {
|
|
|
17
21
|
platform: string;
|
|
18
22
|
skillName: string;
|
|
19
23
|
content: string;
|
|
24
|
+
files?: SkillFile[];
|
|
25
|
+
};
|
|
26
|
+
baseSkill?: {
|
|
27
|
+
files: SkillFile[];
|
|
20
28
|
};
|
|
21
29
|
implementationState?: ImplementationStateResponse | null;
|
|
22
30
|
progress?: ProgressResponse | null;
|
package/dist/renderers.js
CHANGED
|
@@ -166,6 +166,9 @@ function buildSkillBody(input) {
|
|
|
166
166
|
lines.push(`- **Platform:** ${platform}`);
|
|
167
167
|
lines.push(`- **Pattern:** ${pattern}`);
|
|
168
168
|
lines.push(`- **Agents:** ${team.length}`, '');
|
|
169
|
+
if (input.baseSkill) {
|
|
170
|
+
lines.push('> A base implementation skill has been installed at `.claude/skills/agent-blueprint/`.', '> It contains deployment patterns and reference material for all platforms.', '');
|
|
171
|
+
}
|
|
169
172
|
if (input.vendorSkill) {
|
|
170
173
|
const platformLabel = input.vendorSkill.platform.charAt(0).toUpperCase() + input.vendorSkill.platform.slice(1);
|
|
171
174
|
lines.push(`> A ${platformLabel} expert skill has been installed at \`.claude/skills/${input.vendorSkill.skillName}/\`.`, '> It will be auto-loaded for platform-specific tasks.', '');
|
|
@@ -1851,6 +1854,11 @@ function buildGettingStartedReturnVisit(input) {
|
|
|
1851
1854
|
lines.push(`Agent${inProgressNames.length > 1 ? 's' : ''} in progress: ${inProgressNames.join(', ')}. Pick up where you left off.`);
|
|
1852
1855
|
lines.push('');
|
|
1853
1856
|
}
|
|
1857
|
+
if (input.baseSkill) {
|
|
1858
|
+
lines.push('The `.claude/skills/agent-blueprint/` skill contains deployment patterns and');
|
|
1859
|
+
lines.push('reference material applicable to all platforms. Read it for general guidance.');
|
|
1860
|
+
lines.push('');
|
|
1861
|
+
}
|
|
1854
1862
|
if (input.vendorSkill) {
|
|
1855
1863
|
lines.push(`The \`.claude/skills/${input.vendorSkill.skillName}/\` skill contains platform-specific`);
|
|
1856
1864
|
lines.push('deployment guidance. Follow it for all platform-specific work.');
|
|
@@ -1977,17 +1985,39 @@ function buildGettingStarted(input) {
|
|
|
1977
1985
|
lines.push('Ask the user where they want to deploy this. Three scenarios:');
|
|
1978
1986
|
lines.push('');
|
|
1979
1987
|
lines.push('**A. User has a platform and instance ready** (e.g., ServiceNow, Salesforce):');
|
|
1980
|
-
lines.push('1. Get the instance URL and credentials.');
|
|
1981
|
-
lines.push('2. Confirm this is a development or sandbox instance, not production.');
|
|
1982
|
-
lines.push('3. Verify you are connected to the correct instance before making any changes.');
|
|
1983
1988
|
lines.push('');
|
|
1989
|
+
lines.push('Ask for the instance URL and credentials. Adapt your approach based on what the');
|
|
1990
|
+
lines.push('user provides. Do not present access tiers as a menu. Respond naturally:');
|
|
1991
|
+
lines.push('');
|
|
1992
|
+
lines.push('- **Full access (read + write credentials):** Confirm this is a development or');
|
|
1993
|
+
lines.push(' sandbox instance, not production. Verify you are connected to the correct');
|
|
1994
|
+
lines.push(' instance before making any changes. You will create records, write scripts,');
|
|
1995
|
+
lines.push(' and configure integrations directly.');
|
|
1996
|
+
lines.push('- **Read-only access:** The user provides credentials but tells you access is');
|
|
1997
|
+
lines.push(' read-only, or you discover you cannot write. Connect to the instance to');
|
|
1998
|
+
lines.push(' discover schemas, read existing configurations, and understand the environment.');
|
|
1999
|
+
lines.push(' Generate all records and scripts as local files. Walk the user through creating');
|
|
2000
|
+
lines.push(' them. After the user acts, verify the result by reading back from the instance.');
|
|
2001
|
+
lines.push('- **No access:** The user cannot or will not provide credentials. Work entirely');
|
|
2002
|
+
lines.push(' from the blueprint spec and skill knowledge. Generate all artifacts as local');
|
|
2003
|
+
lines.push(' files. Provide step-by-step instructions for every action. You cannot verify');
|
|
2004
|
+
lines.push(' results directly, so ask the user to share outcomes (screenshots, record IDs,');
|
|
2005
|
+
lines.push(' error messages) after each step.');
|
|
2006
|
+
lines.push('');
|
|
2007
|
+
if (input.baseSkill) {
|
|
2008
|
+
lines.push('A base implementation skill has been installed at `.claude/skills/agent-blueprint/`.');
|
|
2009
|
+
lines.push('It contains deployment patterns and reference material applicable to all platforms.');
|
|
2010
|
+
lines.push('Read it before starting any implementation work.');
|
|
2011
|
+
lines.push('');
|
|
2012
|
+
}
|
|
1984
2013
|
if (input.vendorSkill) {
|
|
1985
2014
|
const platformLabel = input.vendorSkill.platform.charAt(0).toUpperCase() + input.vendorSkill.platform.slice(1);
|
|
1986
2015
|
lines.push(`A ${platformLabel} expert skill has been installed at \`.claude/skills/${input.vendorSkill.skillName}/\`.`);
|
|
1987
2016
|
lines.push('It contains the connection verification steps, deployment sequence, platform');
|
|
1988
2017
|
lines.push('patterns, and debugging guidance. Follow it for all platform-specific work.');
|
|
2018
|
+
lines.push('The deployment sequence adapts to the access level the user provides.');
|
|
1989
2019
|
}
|
|
1990
|
-
else {
|
|
2020
|
+
else if (!input.baseSkill) {
|
|
1991
2021
|
lines.push('If `references/deployment-guide-*.md` files are present, read those for');
|
|
1992
2022
|
lines.push('platform-specific tooling, deployment sequence, and gotchas.');
|
|
1993
2023
|
}
|
|
@@ -2047,15 +2077,24 @@ function buildGettingStarted(input) {
|
|
|
2047
2077
|
lines.push('### Your role through implementation');
|
|
2048
2078
|
lines.push('');
|
|
2049
2079
|
lines.push('Your job does not end when simulation scripts are deployed. Stay with the user');
|
|
2050
|
-
lines.push('through the full implementation.
|
|
2080
|
+
lines.push('through the full implementation. How you operate depends on the access level');
|
|
2081
|
+
lines.push('established in Step 2:');
|
|
2082
|
+
lines.push('');
|
|
2083
|
+
lines.push('**With full access:** Do the work directly. Create records, write scripts,');
|
|
2084
|
+
lines.push('configure integrations, test. Act first, report after.');
|
|
2085
|
+
lines.push('');
|
|
2086
|
+
lines.push('**With read-only access:** Use the instance connection to discover schemas,');
|
|
2087
|
+
lines.push('read existing config, and verify results. Generate all records and scripts as');
|
|
2088
|
+
lines.push('local files. Walk the user through creating them on the platform. After each');
|
|
2089
|
+
lines.push('step, read back from the instance to confirm it was done correctly.');
|
|
2051
2090
|
lines.push('');
|
|
2052
|
-
lines.push('
|
|
2053
|
-
lines.push('
|
|
2054
|
-
lines.push('
|
|
2055
|
-
lines.push('
|
|
2056
|
-
lines.push('
|
|
2057
|
-
lines.push('
|
|
2058
|
-
lines.push('
|
|
2091
|
+
lines.push('**With no access:** Generate everything as local files with step-by-step');
|
|
2092
|
+
lines.push('instructions. Ask the user to share results after each action so you can');
|
|
2093
|
+
lines.push('guide corrections. Be explicit about what you cannot verify.');
|
|
2094
|
+
lines.push('');
|
|
2095
|
+
lines.push('Within any access level, shift fluidly as needed. Even with full access, some');
|
|
2096
|
+
lines.push('tasks require the user to act (UI-only config, credential vaults, approval');
|
|
2097
|
+
lines.push('workflows). Give exact instructions and verify programmatically when possible.');
|
|
2059
2098
|
lines.push('');
|
|
2060
2099
|
// Step 4
|
|
2061
2100
|
lines.push('## Step 4: Validate');
|
|
@@ -2554,9 +2593,22 @@ export function renderSkillDirectory(input) {
|
|
|
2554
2593
|
if (input.vendorGuide && !input.vendorSkill) {
|
|
2555
2594
|
files.set(`references/deployment-guide-${input.vendorGuide.platform}.md`, input.vendorGuide.content);
|
|
2556
2595
|
}
|
|
2557
|
-
//
|
|
2596
|
+
// Base skill (always, when present)
|
|
2597
|
+
if (input.baseSkill) {
|
|
2598
|
+
for (const file of input.baseSkill.files) {
|
|
2599
|
+
files.set(`.claude/skills/agent-blueprint/${file.path}`, file.content);
|
|
2600
|
+
}
|
|
2601
|
+
}
|
|
2602
|
+
// Vendor expert skill (multi-file when available, single SKILL.md fallback)
|
|
2558
2603
|
if (input.vendorSkill) {
|
|
2559
|
-
|
|
2604
|
+
if (input.vendorSkill.files && input.vendorSkill.files.length > 0) {
|
|
2605
|
+
for (const file of input.vendorSkill.files) {
|
|
2606
|
+
files.set(`.claude/skills/${input.vendorSkill.skillName}/${file.path}`, file.content);
|
|
2607
|
+
}
|
|
2608
|
+
}
|
|
2609
|
+
else {
|
|
2610
|
+
files.set(`.claude/skills/${input.vendorSkill.skillName}/SKILL.md`, input.vendorSkill.content);
|
|
2611
|
+
}
|
|
2560
2612
|
}
|
|
2561
2613
|
// Scripts
|
|
2562
2614
|
files.set('scripts/validate-spec.sh', buildValidateScript());
|