fraim-framework 2.0.122 → 2.0.123

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/package.json CHANGED
@@ -1,146 +1,150 @@
1
- {
2
- "name": "fraim-framework",
3
- "version": "2.0.122",
4
- "description": "FRAIM: AI Workforce Infrastructure — the organizational capability that turns AI agents into an accountable workforce, their operators into capable AI managers, and executives into leaders with clear optics on AI proficiency.",
5
- "main": "index.js",
6
- "bin": {
7
- "fraim": "./index.js",
8
- "fraim-framework": "./index.js"
9
- },
10
- "scripts": {
11
- "dev": "tsx --watch src/fraim-mcp-server.ts > server.log 2>&1",
12
- "dev:prod": "npm run build && node dist/src/fraim-mcp-server.js > server.log 2>&1",
13
- "build": "tsc && npm run build:stubs && npm run build:fraim-brain && node scripts/copy-registry.js && node -e \"require('fs').copyFileSync('src/core/types.ts', 'registry/templates/manager/fraim-config-schema.ts')\" && npm run validate:registry && npm run validate:fraim-pro-assets && tsx scripts/validate-purity.ts",
14
- "build:stubs": "tsx scripts/build-stub-registry.ts",
15
- "build:fraim-brain": "node scripts/generate-fraim-brain.js",
16
- "test-all": "npm run test && npm run test:isolated && npm run test:ui",
17
- "test": "node scripts/test-with-server.js",
18
- "test:isolated": "npx tsx --test --test-reporter=spec tests/isolated/test-*.ts",
19
- "test:smoke": "node scripts/test-with-server.js --tags=smoke",
20
- "test:coverage": "node scripts/test-with-server.js --tags=smoke --coverage",
21
- "test:stripe": "node scripts/test-with-server.js tests/test-stripe-payment-complete.ts",
22
- "test:stripe:ui": "playwright test tests/ui/test-payment-ui.spec.ts",
23
- "test:perf": "node scripts/test-with-server.js tests/performance/analytics-perf.ts",
24
- "test:ui": "playwright test",
25
- "test:ui:headed": "playwright test --headed",
26
- "start:fraim": "tsx src/fraim-mcp-server.ts",
27
- "dev:fraim": "tsx --watch src/fraim-mcp-server.ts",
28
- "serve:website": "node fraim-pro/serve.js",
29
- "watch:fraimlogs": "tsx scripts/watch-fraim-logs.ts > prodlogs.log 2>&1",
30
- "manage-keys": "tsx scripts/fraim/manage-keys.ts",
31
- "manage-teams": "tsx scripts/fraim/manage-teams.ts",
32
- "partner-discounts": "tsx scripts/fraim/manage-partner-discounts.ts",
33
- "fix-key": "tsx scripts/fraim/fix-expired-key.ts",
34
- "setup-stripe-webhook": "tsx scripts/fraim/setup-stripe-webhook.ts",
35
- "view-signups": "tsx scripts/view-signups.ts",
36
- "fraim:init": "npm run build && node index.js init",
37
- "fraim:sync": "node index.js sync --local",
38
- "postinstall": "fraim sync --skip-updates || echo 'FRAIM setup skipped.'",
39
- "prepublishOnly": "npm run build",
40
- "release": "npm version patch && npm run publish-both",
41
- "publish-both": "node scripts/publish-both.js",
42
- "publish-fraim-only": "node scripts/publish-fraim.js",
43
- "publish-both-manual": "node scripts/publish-both.js",
44
- "validate:registry": "tsx scripts/verify-registry-paths.ts && npm run validate:jobs && npm run validate:skills && npm run validate:registry-references && npm run validate:platform-agnostic && npm run validate:template-namespaces && npm run validate:config-fallbacks && npm run validate:bootstrap-config-coverage && npm run validate:provider-action-mappings && npm run validate:fidelity && npm run validate:config-tokens && npm run validate:brain-mapping && npm run validate:template-syntax",
45
- "validate:registry-references": "tsx scripts/validate-registry-references.ts",
46
- "validate:brain-mapping": "tsx scripts/validate-brain-mapping.ts",
47
- "validate:fraim-pro-assets": "tsx scripts/validate-fraim-pro-assets.ts",
48
- "validate:jobs": "tsx scripts/validate-jobs.ts",
49
- "validate:platform-agnostic": "tsx scripts/validate-platform-agnostic.ts",
50
- "validate:skills": "tsx scripts/validate-skills.ts",
51
- "validate:template-namespaces": "tsx scripts/validate-template-namespaces.ts",
52
- "validate:config-fallbacks": "tsx scripts/validate-config-fallbacks.ts",
53
- "validate:bootstrap-config-coverage": "tsx scripts/validate-bootstrap-config-coverage.ts",
54
- "validate:provider-action-mappings": "tsx scripts/validate-provider-action-mappings.ts",
55
- "validate:fidelity": "tsx scripts/validate-fidelity.ts",
56
- "validate:config-tokens": "tsx scripts/validate-config-tokens.ts",
57
- "validate:template-syntax": "tsx scripts/validate-template-syntax.ts",
58
- "validate:backup": "bash scripts/backup/validate-pitr-restore.sh"
59
- },
60
- "repository": {
61
- "type": "git",
62
- "url": "git+https://github.com/mathursrus/FRAIM.git"
63
- },
64
- "keywords": [
65
- "fraim",
66
- "ai-management",
67
- "ai-coordination",
68
- "ai-agents",
69
- "multi-agent",
70
- "github",
71
- "automation",
72
- "gitops",
73
- "cursor",
74
- "claude",
75
- "windsurf",
76
- "rigor",
77
- "enterprise",
78
- "framework",
79
- "ai-managers"
80
- ],
81
- "author": "Sid Mathur <sid.mathur@gmail.com>",
82
- "license": "MIT",
83
- "bugs": {
84
- "url": "https://github.com/mathursrus/FRAIM/issues"
85
- },
86
- "homepage": "https://github.com/mathursrus/FRAIM#readme",
87
- "engines": {
88
- "node": ">=16.0.0"
89
- },
90
- "devDependencies": {
91
- "@playwright/test": "^1.58.2",
92
- "@types/adm-zip": "^0.5.7",
93
- "@types/cors": "^2.8.19",
94
- "@types/express": "^5.0.6",
95
- "@types/node": "^20.0.0",
96
- "@types/node-fetch": "^2.6.13",
97
- "@types/prompts": "^2.4.9",
98
- "@types/semver": "^7.7.1",
99
- "fast-glob": "^3.3.3",
100
- "html-to-docx": "^1.8.0",
101
- "markdown-it": "^14.1.1",
102
- "markdown-it-highlightjs": "^4.3.0",
103
- "playwright": "^1.58.2",
104
- "pptxgenjs": "^4.0.1",
105
- "puppeteer": "^24.36.1",
106
- "qrcode": "^1.5.4",
107
- "sharp": "^0.34.5",
108
- "tsx": "^4.0.0",
109
- "typescript": "^5.0.0"
110
- },
111
- "files": [
112
- "dist/src/local-mcp-server/",
113
- "dist/src/cli/",
114
- "dist/src/core/",
115
- "bin/fraim.js",
116
- "bin/fraim-mcp.js",
117
- "index.js",
118
- "README.md",
119
- "CHANGELOG.md",
120
- "LICENSE",
121
- "package.json"
122
- ],
123
- "publishConfig": {
124
- "access": "public"
125
- },
126
- "dependencies": {
127
- "@octokit/rest": "^22.0.1",
128
- "adm-zip": "^0.5.16",
129
- "axios": "^1.7.0",
130
- "chalk": "4.1.2",
131
- "commander": "^14.0.2",
132
- "cors": "^2.8.5",
133
- "dotenv": "^16.4.7",
134
- "express": "^5.2.1",
135
- "mongodb": "^7.0.0",
136
- "node-edge-tts": "^1.2.10",
137
- "nodemailer": "^8.0.3",
138
- "prompts": "^2.4.2",
139
- "resend": "^6.9.3",
140
- "semver": "^7.7.4",
141
- "stripe": "^20.3.1",
142
- "toml": "^3.0.0",
143
- "tree-kill": "^1.2.2",
144
- "xml2js": "^0.6.2"
145
- }
146
- }
1
+ {
2
+ "name": "fraim-framework",
3
+ "version": "2.0.123",
4
+ "description": "FRAIM: AI Workforce Infrastructure — the organizational capability that turns AI agents into an accountable workforce, their operators into capable AI managers, and executives into leaders with clear optics on AI proficiency.",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "fraim": "./index.js",
8
+ "fraim-framework": "./index.js"
9
+ },
10
+ "scripts": {
11
+ "dev": "tsx --watch src/fraim-mcp-server.ts > server.log 2>&1",
12
+ "dev:prod": "npm run build && node dist/src/fraim-mcp-server.js > server.log 2>&1",
13
+ "build": "tsc && npm run build:stubs && npm run build:fraim-brain && node scripts/copy-registry.js && node -e \"require('fs').copyFileSync('src/core/types.ts', 'registry/templates/manager/fraim-config-schema.ts')\" && npm run validate:registry && npm run validate:fraim-pro-assets && tsx scripts/validate-purity.ts",
14
+ "build:stubs": "tsx scripts/build-stub-registry.ts",
15
+ "build:fraim-brain": "node scripts/generate-fraim-brain.js",
16
+ "test-all": "npm run test && npm run test:isolated && npm run test:ui",
17
+ "test": "node scripts/test-with-server.js",
18
+ "test:isolated": "npx tsx --test --test-reporter=spec tests/isolated/test-*.ts",
19
+ "test:smoke": "node scripts/test-with-server.js --tags=smoke",
20
+ "test:coverage": "node scripts/test-with-server.js --tags=smoke --coverage",
21
+ "test:stripe": "node scripts/test-with-server.js tests/test-stripe-payment-complete.ts",
22
+ "test:stripe:ui": "playwright test tests/ui/test-payment-ui.spec.ts",
23
+ "test:perf": "node scripts/test-with-server.js tests/performance/analytics-perf.ts",
24
+ "test:ui": "playwright test",
25
+ "test:ui:headed": "playwright test --headed",
26
+ "hub:desktop": "npm run build && electron dist/src/ai-hub/desktop-main.js",
27
+ "start:fraim": "tsx src/fraim-mcp-server.ts",
28
+ "dev:fraim": "tsx --watch src/fraim-mcp-server.ts",
29
+ "serve:website": "node fraim-pro/serve.js",
30
+ "watch:fraimlogs": "tsx scripts/watch-fraim-logs.ts > prodlogs.log 2>&1",
31
+ "manage-keys": "tsx scripts/fraim/manage-keys.ts",
32
+ "manage-teams": "tsx scripts/fraim/manage-teams.ts",
33
+ "partner-discounts": "tsx scripts/fraim/manage-partner-discounts.ts",
34
+ "fix-key": "tsx scripts/fraim/fix-expired-key.ts",
35
+ "setup-stripe-webhook": "tsx scripts/fraim/setup-stripe-webhook.ts",
36
+ "view-signups": "tsx scripts/view-signups.ts",
37
+ "fraim:init": "npm run build && node index.js init",
38
+ "fraim:sync": "node index.js sync --local",
39
+ "postinstall": "fraim sync --skip-updates || echo 'FRAIM setup skipped.'",
40
+ "prepublishOnly": "npm run build",
41
+ "release": "npm version patch && npm run publish-both",
42
+ "publish-both": "node scripts/publish-both.js",
43
+ "publish-fraim-only": "node scripts/publish-fraim.js",
44
+ "publish-both-manual": "node scripts/publish-both.js",
45
+ "validate:registry": "tsx scripts/verify-registry-paths.ts && npm run validate:jobs && npm run validate:skills && npm run validate:registry-references && npm run validate:platform-agnostic && npm run validate:template-namespaces && npm run validate:config-fallbacks && npm run validate:bootstrap-config-coverage && npm run validate:provider-action-mappings && npm run validate:fidelity && npm run validate:config-tokens && npm run validate:brain-mapping && npm run validate:template-syntax",
46
+ "validate:registry-references": "tsx scripts/validate-registry-references.ts",
47
+ "validate:brain-mapping": "tsx scripts/validate-brain-mapping.ts",
48
+ "validate:fraim-pro-assets": "tsx scripts/validate-fraim-pro-assets.ts",
49
+ "validate:jobs": "tsx scripts/validate-jobs.ts",
50
+ "validate:platform-agnostic": "tsx scripts/validate-platform-agnostic.ts",
51
+ "validate:skills": "tsx scripts/validate-skills.ts",
52
+ "validate:template-namespaces": "tsx scripts/validate-template-namespaces.ts",
53
+ "validate:config-fallbacks": "tsx scripts/validate-config-fallbacks.ts",
54
+ "validate:bootstrap-config-coverage": "tsx scripts/validate-bootstrap-config-coverage.ts",
55
+ "validate:provider-action-mappings": "tsx scripts/validate-provider-action-mappings.ts",
56
+ "validate:fidelity": "tsx scripts/validate-fidelity.ts",
57
+ "validate:config-tokens": "tsx scripts/validate-config-tokens.ts",
58
+ "validate:template-syntax": "tsx scripts/validate-template-syntax.ts",
59
+ "validate:backup": "bash scripts/backup/validate-pitr-restore.sh"
60
+ },
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "git+https://github.com/mathursrus/FRAIM.git"
64
+ },
65
+ "keywords": [
66
+ "fraim",
67
+ "ai-management",
68
+ "ai-coordination",
69
+ "ai-agents",
70
+ "multi-agent",
71
+ "github",
72
+ "automation",
73
+ "gitops",
74
+ "cursor",
75
+ "claude",
76
+ "windsurf",
77
+ "rigor",
78
+ "enterprise",
79
+ "framework",
80
+ "ai-managers"
81
+ ],
82
+ "author": "Sid Mathur <sid.mathur@gmail.com>",
83
+ "license": "MIT",
84
+ "bugs": {
85
+ "url": "https://github.com/mathursrus/FRAIM/issues"
86
+ },
87
+ "homepage": "https://github.com/mathursrus/FRAIM#readme",
88
+ "engines": {
89
+ "node": ">=16.0.0"
90
+ },
91
+ "devDependencies": {
92
+ "@playwright/test": "^1.58.2",
93
+ "@types/adm-zip": "^0.5.7",
94
+ "@types/cors": "^2.8.19",
95
+ "@types/express": "^5.0.6",
96
+ "@types/node": "^20.0.0",
97
+ "@types/node-fetch": "^2.6.13",
98
+ "@types/prompts": "^2.4.9",
99
+ "@types/semver": "^7.7.1",
100
+ "fast-glob": "^3.3.3",
101
+ "html-to-docx": "^1.8.0",
102
+ "markdown-it": "^14.1.1",
103
+ "markdown-it-highlightjs": "^4.3.0",
104
+ "playwright": "^1.58.2",
105
+ "pptxgenjs": "^4.0.1",
106
+ "puppeteer": "^24.36.1",
107
+ "qrcode": "^1.5.4",
108
+ "sharp": "^0.34.5",
109
+ "tsx": "^4.0.0",
110
+ "typescript": "^5.0.0"
111
+ },
112
+ "files": [
113
+ "dist/src/local-mcp-server/",
114
+ "dist/src/cli/",
115
+ "dist/src/ai-hub/",
116
+ "dist/src/core/",
117
+ "bin/fraim.js",
118
+ "bin/fraim-mcp.js",
119
+ "public/ai-hub/",
120
+ "index.js",
121
+ "README.md",
122
+ "CHANGELOG.md",
123
+ "LICENSE",
124
+ "package.json"
125
+ ],
126
+ "publishConfig": {
127
+ "access": "public"
128
+ },
129
+ "dependencies": {
130
+ "@octokit/rest": "^22.0.1",
131
+ "adm-zip": "^0.5.16",
132
+ "axios": "^1.7.0",
133
+ "chalk": "4.1.2",
134
+ "commander": "^14.0.2",
135
+ "cors": "^2.8.5",
136
+ "dotenv": "^16.4.7",
137
+ "electron": "^41.2.2",
138
+ "express": "^5.2.1",
139
+ "mongodb": "^7.0.0",
140
+ "node-edge-tts": "^1.2.10",
141
+ "nodemailer": "^8.0.3",
142
+ "prompts": "^2.4.2",
143
+ "resend": "^6.9.3",
144
+ "semver": "^7.7.4",
145
+ "stripe": "^20.3.1",
146
+ "toml": "^3.0.0",
147
+ "tree-kill": "^1.2.2",
148
+ "xml2js": "^0.6.2"
149
+ }
150
+ }
@@ -0,0 +1,130 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Visa AI Hub</title>
7
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect width='48' height='48' rx='10' fill='%230d3f8a'/%3E%3Cpath d='M13 31h6l3-14h-6zm10 0h6l3-14h-6zm11-14h-6l-3 14h6z' fill='%23f7b600'/%3E%3C/svg%3E">
8
+ <link rel="stylesheet" href="./styles.css">
9
+ </head>
10
+ <body>
11
+ <div class="app-shell">
12
+ <header class="app-header">
13
+ <div class="brand-lockup">
14
+ <p class="brand-title">Visa AI Hub</p>
15
+ <p class="brand-subtitle">Powered by <a href="https://fraimworks.ai" target="_blank" rel="noreferrer">FRAIM</a></p>
16
+ </div>
17
+ <div class="topbar-card workspace-card">
18
+ <div class="workspace-section workspace-section-inline">
19
+ <span class="section-label">Employee</span>
20
+ <div class="employee-picker" id="employee-picker"></div>
21
+ </div>
22
+ <details class="project-path workspace-project">
23
+ <summary>
24
+ <span>Project Path</span>
25
+ <span class="project-path-preview" id="project-path-preview"></span>
26
+ </summary>
27
+ <div class="project-path-body">
28
+ <input id="project-path-input" class="text-input" type="text" />
29
+ <div class="project-actions">
30
+ <button id="browse-project" class="secondary-button" type="button">Choose Folder</button>
31
+ <button id="reload-project" class="secondary-button" type="button">Reload</button>
32
+ </div>
33
+ <p class="helper-text" id="project-status"></p>
34
+ </div>
35
+ </details>
36
+ </div>
37
+ </header>
38
+
39
+ <main class="workspace">
40
+ <section class="workspace-intro card">
41
+ <div class="workspace-intro-copy">
42
+ <p class="section-label">Pick A Job</p>
43
+ <p class="panel-intro">Manage your AI employees just like you manage your teams. Tell them what jobs they need to complete, review their results, coach them, expect them to learn from you, and expect to learn from your employees.</p>
44
+ </div>
45
+ <div class="workspace-intro-actions">
46
+ <p class="section-label">Job Category</p>
47
+ <div class="category-picker" id="category-picker"></div>
48
+ </div>
49
+ </section>
50
+
51
+ <section class="job-panel">
52
+ <div class="panel-head card">
53
+ <div class="panel-copy">
54
+ <p class="section-label">Job Category</p>
55
+ <h2 class="panel-title">Pick a job</h2>
56
+ <p class="muted">Choose the next assignment for your employee.</p>
57
+ </div>
58
+ </div>
59
+
60
+ <div class="job-list-card card">
61
+ <div class="job-list" id="job-list"></div>
62
+ </div>
63
+ </section>
64
+
65
+ <section class="interaction-panel">
66
+ <div class="card interaction-card">
67
+ <div class="run-toolbar">
68
+ <div class="selected-job-summary">
69
+ <div>
70
+ <p class="section-label">Selected Job</p>
71
+ <h2 id="selected-job-title">Select a job</h2>
72
+ <p id="selected-job-intent" class="muted"></p>
73
+ </div>
74
+ <ul class="job-outcomes" id="selected-job-outcomes"></ul>
75
+ </div>
76
+ <div class="run-toolbar-actions">
77
+ <button id="start-job" class="primary-button" type="button" disabled>Start Job</button>
78
+ </div>
79
+ </div>
80
+
81
+ <div class="interaction-body">
82
+ <div class="conversation-column">
83
+ <div class="interaction-head">
84
+ <div>
85
+ <p class="section-label">Manager / Employee Interactions</p>
86
+ <h2 id="conversation-title">No active job</h2>
87
+ </div>
88
+ <p class="muted" id="conversation-state">Select a job and coach your employee toward your desired outcome.</p>
89
+ </div>
90
+
91
+ <div class="timeline" id="timeline"></div>
92
+ </div>
93
+
94
+ <div class="manager-tools">
95
+ <div class="template-row">
96
+ <span class="section-label">Manager Templates</span>
97
+ <div class="template-chips" id="manager-templates"></div>
98
+ </div>
99
+
100
+ <label class="composer-label" for="manager-message">Coach your employee toward your desired outcome.</label>
101
+ <textarea id="manager-message" class="composer" placeholder='Use FRAIM job "marketing-content-creation" and include the audience, desired outcome, and any constraints.'></textarea>
102
+
103
+ <div class="composer-actions">
104
+ <button id="send-coaching" class="secondary-button" type="button" disabled>Send Coaching</button>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+
110
+ <details class="card micro-manage" id="micro-manage">
111
+ <summary>Micro-manage</summary>
112
+ <div class="micro-manage-body" id="raw-history"></div>
113
+ </details>
114
+ </section>
115
+ </main>
116
+ </div>
117
+
118
+ <template id="timeline-message-template">
119
+ <article class="message">
120
+ <div class="message-meta">
121
+ <span class="message-role"></span>
122
+ <time class="message-time"></time>
123
+ </div>
124
+ <p class="message-text"></p>
125
+ </article>
126
+ </template>
127
+
128
+ <script src="./script.js"></script>
129
+ </body>
130
+ </html>