agentplugged 0.0.1 → 1.0.0
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/LICENSE-METHOD +21 -0
- package/README.md +240 -16
- package/dist/agent-commands.js +46532 -0
- package/dist/bin.js +13 -0
- package/dist/cli.js +44 -0
- package/dist/esm.js +920 -0
- package/dist/forge-follow.js +231 -0
- package/dist/helpers.js +18526 -0
- package/dist/helpers2.js +1 -0
- package/dist/launcher-env.js +13 -0
- package/dist/launcher.js +308 -0
- package/dist/libsodium-wrappers.js +4384 -0
- package/dist/libsodium-wrappers2.js +4384 -0
- package/dist/main.js +17732 -0
- package/dist/method/LICENSE +21 -0
- package/dist/method/agents/alex/SKILL.md +87 -0
- package/dist/method/agents/alex/agent.yaml +94 -0
- package/dist/method/agents/chloe/SKILL.md +97 -0
- package/dist/method/agents/chloe/agent.yaml +87 -0
- package/dist/method/agents/ethan/SKILL.md +55 -0
- package/dist/method/agents/ethan/agent.yaml +94 -0
- package/dist/method/agents/hugo/SKILL.md +52 -0
- package/dist/method/agents/hugo/agent.yaml +93 -0
- package/dist/method/agents/iris/SKILL.md +69 -0
- package/dist/method/agents/iris/agent.yaml +86 -0
- package/dist/method/agents/izzy/SKILL.md +137 -0
- package/dist/method/agents/izzy/agent.yaml +104 -0
- package/dist/method/agents/jade/SKILL.md +54 -0
- package/dist/method/agents/jade/agent.yaml +94 -0
- package/dist/method/agents/julien/SKILL.md +96 -0
- package/dist/method/agents/julien/agent.yaml +95 -0
- package/dist/method/agents/lina/SKILL.md +54 -0
- package/dist/method/agents/lina/agent.yaml +94 -0
- package/dist/method/agents/lou/SKILL.md +67 -0
- package/dist/method/agents/lou/agent.yaml +84 -0
- package/dist/method/agents/maya/SKILL.md +82 -0
- package/dist/method/agents/maya/agent.yaml +98 -0
- package/dist/method/agents/milo/SKILL.md +79 -0
- package/dist/method/agents/milo/agent.yaml +80 -0
- package/dist/method/agents/noah/SKILL.md +80 -0
- package/dist/method/agents/noah/agent.yaml +73 -0
- package/dist/method/agents/noah/references/conduct.md +98 -0
- package/dist/method/agents/noah/references/decisions.md +122 -0
- package/dist/method/agents/noah/references/environment.md +72 -0
- package/dist/method/agents/noah/references/facts.md +13 -0
- package/dist/method/agents/noah/references/journey.md +80 -0
- package/dist/method/agents/noah/references/team.md +195 -0
- package/dist/method/agents/omar/SKILL.md +92 -0
- package/dist/method/agents/omar/agent.yaml +86 -0
- package/dist/method/agents/quentin/SKILL.md +78 -0
- package/dist/method/agents/quentin/agent.yaml +82 -0
- package/dist/method/agents/sam/SKILL.md +54 -0
- package/dist/method/agents/sam/agent.yaml +94 -0
- package/dist/method/agents/stella/SKILL.md +80 -0
- package/dist/method/agents/stella/agent.yaml +89 -0
- package/dist/method/agents/tess/SKILL.md +64 -0
- package/dist/method/agents/tess/agent.yaml +94 -0
- package/dist/method/agents/zoe/SKILL.md +85 -0
- package/dist/method/agents/zoe/agent.yaml +91 -0
- package/dist/method/doctor.yaml +1029 -0
- package/dist/method/models.yaml +73 -0
- package/dist/method/skills/.gitkeep +0 -0
- package/dist/method/skills/acceptance-qa/SKILL.md +40 -0
- package/dist/method/skills/acceptance-qa/references/run.md +54 -0
- package/dist/method/skills/acceptance-qa/references/scenarios.md +32 -0
- package/dist/method/skills/acceptance-qa/references/verdicts.md +43 -0
- package/dist/method/skills/api-e2e-tests/SKILL.md +61 -0
- package/dist/method/skills/api-e2e-tests/references/ci.md +33 -0
- package/dist/method/skills/api-e2e-tests/references/frameworks.md +58 -0
- package/dist/method/skills/api-e2e-tests/references/generate.md +67 -0
- package/dist/method/skills/audit-pillars/SKILL.md +28 -0
- package/dist/method/skills/audit-pillars/references/accessibility.md +13 -0
- package/dist/method/skills/audit-pillars/references/architecture.md +13 -0
- package/dist/method/skills/audit-pillars/references/dependencies.md +13 -0
- package/dist/method/skills/audit-pillars/references/format.md +20 -0
- package/dist/method/skills/audit-pillars/references/interface.md +13 -0
- package/dist/method/skills/audit-pillars/references/method.md +33 -0
- package/dist/method/skills/audit-pillars/references/performance.md +17 -0
- package/dist/method/skills/audit-pillars/references/quality.md +11 -0
- package/dist/method/skills/audit-pillars/references/security.md +13 -0
- package/dist/method/skills/audit-pillars/references/tests.md +17 -0
- package/dist/method/skills/chain-stories/SKILL.md +30 -0
- package/dist/method/skills/chain-stories/references/attempts.md +19 -0
- package/dist/method/skills/chain-stories/references/stops.md +27 -0
- package/dist/method/skills/check-readiness/SKILL.md +34 -0
- package/dist/method/skills/check-readiness/references/judge.md +21 -0
- package/dist/method/skills/check-readiness/references/settle.md +17 -0
- package/dist/method/skills/check-requirements/SKILL.md +97 -0
- package/dist/method/skills/check-requirements/references/engine-proofs.md +43 -0
- package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +45 -0
- package/dist/method/skills/correct-course/SKILL.md +15 -0
- package/dist/method/skills/correct-course/references/gestures.md +20 -0
- package/dist/method/skills/correct-course/references/starts.md +18 -0
- package/dist/method/skills/correct-course/references/steps.md +14 -0
- package/dist/method/skills/critique-deliverable/SKILL.md +25 -0
- package/dist/method/skills/critique-deliverable/references/assumption-audit.md +11 -0
- package/dist/method/skills/critique-deliverable/references/choose.md +27 -0
- package/dist/method/skills/critique-deliverable/references/compare-existing.md +13 -0
- package/dist/method/skills/critique-deliverable/references/devils-advocate.md +13 -0
- package/dist/method/skills/critique-deliverable/references/divergence.md +15 -0
- package/dist/method/skills/critique-deliverable/references/domain-expert.md +14 -0
- package/dist/method/skills/critique-deliverable/references/extreme-user.md +13 -0
- package/dist/method/skills/critique-deliverable/references/failure-modes.md +13 -0
- package/dist/method/skills/critique-deliverable/references/first-principles.md +12 -0
- package/dist/method/skills/critique-deliverable/references/format.md +25 -0
- package/dist/method/skills/critique-deliverable/references/gestures.md +24 -0
- package/dist/method/skills/critique-deliverable/references/inversion.md +13 -0
- package/dist/method/skills/critique-deliverable/references/judgment.md +14 -0
- package/dist/method/skills/critique-deliverable/references/pre-mortem.md +12 -0
- package/dist/method/skills/critique-deliverable/references/reconcile.md +15 -0
- package/dist/method/skills/critique-deliverable/references/red-team.md +12 -0
- package/dist/method/skills/critique-deliverable/references/reframe.md +12 -0
- package/dist/method/skills/critique-deliverable/references/second-order.md +12 -0
- package/dist/method/skills/critique-deliverable/references/socratic.md +15 -0
- package/dist/method/skills/critique-deliverable/references/steelman.md +13 -0
- package/dist/method/skills/critique-deliverable/references/subtraction.md +12 -0
- package/dist/method/skills/deep-research/SKILL.md +43 -0
- package/dist/method/skills/deep-research/assets/page-template.md +37 -0
- package/dist/method/skills/deep-research/references/candidates.md +29 -0
- package/dist/method/skills/deep-research/references/external.md +37 -0
- package/dist/method/skills/deep-research/references/page-format.md +51 -0
- package/dist/method/skills/deep-research/references/types.md +31 -0
- package/dist/method/skills/develop-story/SKILL.md +211 -0
- package/dist/method/skills/develop-story/evals/cases.yaml +45 -0
- package/dist/method/skills/develop-story/references/acceptance-tests.md +73 -0
- package/dist/method/skills/develop-story/references/self-check.md +46 -0
- package/dist/method/skills/diagnose-bug/SKILL.md +73 -0
- package/dist/method/skills/diagnose-bug/references/hypotheses.md +45 -0
- package/dist/method/skills/diagnose-bug/references/probes.md +40 -0
- package/dist/method/skills/generate-knowledge-base/SKILL.md +251 -0
- package/dist/method/skills/generate-knowledge-base/assets/guide-template.md +49 -0
- package/dist/method/skills/generate-knowledge-base/assets/index-template.md +58 -0
- package/dist/method/skills/generate-knowledge-base/assets/page-template.md +61 -0
- package/dist/method/skills/generate-knowledge-base/assets/release-notes-template.md +38 -0
- package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +49 -0
- package/dist/method/skills/generate-knowledge-base/references/living-docs.md +81 -0
- package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +48 -0
- package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +21 -0
- package/dist/method/skills/ideation/SKILL.md +44 -0
- package/dist/method/skills/ideation/assets/session-template.md +46 -0
- package/dist/method/skills/ideation/references/choose.md +21 -0
- package/dist/method/skills/ideation/references/close.md +17 -0
- package/dist/method/skills/ideation/references/converge.md +24 -0
- package/dist/method/skills/ideation/references/gestures.md +15 -0
- package/dist/method/skills/ideation/references/stances.md +21 -0
- package/dist/method/skills/ideation/references/techniques-borrowed.md +8 -0
- package/dist/method/skills/ideation/references/techniques-deep.md +12 -0
- package/dist/method/skills/ideation/references/techniques-frames.md +12 -0
- package/dist/method/skills/ideation/references/techniques-futures.md +8 -0
- package/dist/method/skills/ideation/references/techniques-limits.md +9 -0
- package/dist/method/skills/ideation/references/techniques-people.md +7 -0
- package/dist/method/skills/ideation/references/techniques-sparks.md +10 -0
- package/dist/method/skills/ideation/references/techniques-together.md +11 -0
- package/dist/method/skills/improve-code/SKILL.md +74 -0
- package/dist/method/skills/improve-code/references/axes.md +45 -0
- package/dist/method/skills/improve-session/SKILL.md +47 -0
- package/dist/method/skills/order-merges/SKILL.md +71 -0
- package/dist/method/skills/pitch/SKILL.md +40 -0
- package/dist/method/skills/pitch/assets/deck-template.md +31 -0
- package/dist/method/skills/pitch/assets/design-template.md +45 -0
- package/dist/method/skills/pitch/assets/narrative-template.md +40 -0
- package/dist/method/skills/pitch/references/deck-types.md +17 -0
- package/dist/method/skills/pitch/references/deck.md +24 -0
- package/dist/method/skills/pitch/references/design-implementation.md +25 -0
- package/dist/method/skills/pitch/references/design-methods.md +45 -0
- package/dist/method/skills/pitch/references/design-thinking.md +28 -0
- package/dist/method/skills/pitch/references/story-frameworks.md +39 -0
- package/dist/method/skills/pitch/references/story.md +22 -0
- package/dist/method/skills/plan-sprint/SKILL.md +162 -0
- package/dist/method/skills/quick-lane/SKILL.md +143 -0
- package/dist/method/skills/resolve-merge-conflict/SKILL.md +83 -0
- package/dist/method/skills/review-story/SKILL.md +96 -0
- package/dist/method/skills/review-story/evals/cases.yaml +59 -0
- package/dist/method/skills/review-story/references/amend-story.md +16 -0
- package/dist/method/skills/review-story/references/export.md +20 -0
- package/dist/method/skills/review-story/references/format.md +33 -0
- package/dist/method/skills/review-story/references/free-review.md +22 -0
- package/dist/method/skills/review-story/references/judge.md +44 -0
- package/dist/method/skills/review-story/references/lens-adversarial.md +15 -0
- package/dist/method/skills/review-story/references/lens-edge-cases.md +24 -0
- package/dist/method/skills/review-story/references/lens-prose.md +11 -0
- package/dist/method/skills/review-story/references/lens-relevance.md +13 -0
- package/dist/method/skills/review-story/references/lens-security.md +10 -0
- package/dist/method/skills/review-story/references/lens-structure.md +16 -0
- package/dist/method/skills/review-story/references/lens-verification-gaps.md +13 -0
- package/dist/method/skills/review-story/references/pass-assertions.md +17 -0
- package/dist/method/skills/review-story/references/pass-removals.md +13 -0
- package/dist/method/skills/review-tests/SKILL.md +32 -0
- package/dist/method/skills/review-tests/references/check.md +25 -0
- package/dist/method/skills/review-tests/references/grid.md +27 -0
- package/dist/method/skills/round-table/SKILL.md +31 -0
- package/dist/method/skills/round-table/evals/cases.yaml +27 -0
- package/dist/method/skills/round-table/references/cast.md +14 -0
- package/dist/method/skills/round-table/references/gestures.md +24 -0
- package/dist/method/skills/round-table/references/guests.md +17 -0
- package/dist/method/skills/round-table/references/independence.md +21 -0
- package/dist/method/skills/round-table/references/rooms.md +29 -0
- package/dist/method/skills/round-table/references/three-views.md +17 -0
- package/dist/method/skills/round-table/references/turns.md +19 -0
- package/dist/method/skills/run-retrospective/SKILL.md +201 -0
- package/dist/method/skills/security-review-architecture/SKILL.md +129 -0
- package/dist/method/skills/security-review-architecture/assets/architecture-review-template.md +47 -0
- package/dist/method/skills/security-review-architecture/references/spec-review.md +48 -0
- package/dist/method/skills/setup-ci/SKILL.md +121 -0
- package/dist/method/skills/setup-ci/assets/github-actions.yml +52 -0
- package/dist/method/skills/setup-ci/assets/gitlab-ci.yml +34 -0
- package/dist/method/skills/split-into-stories/SKILL.md +205 -0
- package/dist/method/skills/split-into-stories/assets/epic.md.tmpl +31 -0
- package/dist/method/skills/split-into-stories/assets/story.md.tmpl +36 -0
- package/dist/method/skills/strategy/SKILL.md +44 -0
- package/dist/method/skills/strategy/assets/innovation-template.md +60 -0
- package/dist/method/skills/strategy/assets/problem-template.md +54 -0
- package/dist/method/skills/strategy/references/costs.md +28 -0
- package/dist/method/skills/strategy/references/gestures.md +24 -0
- package/dist/method/skills/strategy/references/innovate-frameworks.md +48 -0
- package/dist/method/skills/strategy/references/innovate.md +40 -0
- package/dist/method/skills/strategy/references/solve-methods.md +45 -0
- package/dist/method/skills/strategy/references/solve.md +35 -0
- package/dist/method/skills/test-idea/SKILL.md +29 -0
- package/dist/method/skills/test-idea/assets/forge-template.md +27 -0
- package/dist/method/skills/test-idea/assets/prfaq-template.md +33 -0
- package/dist/method/skills/test-idea/references/bets.md +14 -0
- package/dist/method/skills/test-idea/references/concept.md +24 -0
- package/dist/method/skills/test-idea/references/faq.md +34 -0
- package/dist/method/skills/test-idea/references/forge.md +36 -0
- package/dist/method/skills/test-idea/references/personas.md +23 -0
- package/dist/method/skills/test-idea/references/prfaq.md +33 -0
- package/dist/method/skills/test-idea/references/verdict.md +26 -0
- package/dist/method/skills/workshop/SKILL.md +40 -0
- package/dist/method/skills/workshop/references/analyze.md +36 -0
- package/dist/method/skills/workshop/references/create.md +45 -0
- package/dist/method/skills/workshop/references/customize.md +45 -0
- package/dist/method/skills/workshop/references/evaluate.md +44 -0
- package/dist/method/skills/workshop/references/rules.md +35 -0
- package/dist/method/skills/write-architecture/SKILL.md +233 -0
- package/dist/method/skills/write-architecture/assets/architecture-template.md +110 -0
- package/dist/method/skills/write-architecture/references/guard.md +40 -0
- package/dist/method/skills/write-architecture/references/self-check.md +47 -0
- package/dist/method/skills/write-brand/SKILL.md +36 -0
- package/dist/method/skills/write-brand/assets/brand-template.md +59 -0
- package/dist/method/skills/write-brand/assets/identity-page.html +141 -0
- package/dist/method/skills/write-brand/assets/identity-template.md +132 -0
- package/dist/method/skills/write-brand/references/identity.md +38 -0
- package/dist/method/skills/write-brand/references/platform.md +29 -0
- package/dist/method/skills/write-brand/references/rules.md +43 -0
- package/dist/method/skills/write-brief/SKILL.md +171 -0
- package/dist/method/skills/write-brief/assets/brief-template.md +87 -0
- package/dist/method/skills/write-brief/assets/research-note-template.md +43 -0
- package/dist/method/skills/write-brief/references/brief-checklist.md +37 -0
- package/dist/method/skills/write-content/SKILL.md +233 -0
- package/dist/method/skills/write-content/assets/campaign-template.md +94 -0
- package/dist/method/skills/write-content/assets/content-template.md +76 -0
- package/dist/method/skills/write-content/references/content-checklist.md +67 -0
- package/dist/method/skills/write-positioning/SKILL.md +218 -0
- package/dist/method/skills/write-positioning/assets/page-template.md +85 -0
- package/dist/method/skills/write-positioning/assets/positioning-template.md +79 -0
- package/dist/method/skills/write-positioning/references/positioning-checklist.md +44 -0
- package/dist/method/skills/write-positioning/references/seo-checklist.md +62 -0
- package/dist/method/skills/write-prd/SKILL.md +204 -0
- package/dist/method/skills/write-prd/assets/prd-template.md +121 -0
- package/dist/method/skills/write-prd/evals/cases.yaml +46 -0
- package/dist/method/skills/write-prd/references/prd-checklist.md +68 -0
- package/dist/method/skills/write-sales/SKILL.md +236 -0
- package/dist/method/skills/write-sales/assets/offer-template.md +93 -0
- package/dist/method/skills/write-sales/assets/sequence-template.md +110 -0
- package/dist/method/skills/write-sales/references/before-you-send.md +54 -0
- package/dist/method/skills/write-sales/references/sales-checklist.md +71 -0
- package/dist/method/skills/write-spec/SKILL.md +25 -0
- package/dist/method/skills/write-spec/assets/spec-template.md +59 -0
- package/dist/method/skills/write-spec/references/spec-guide.md +47 -0
- package/dist/method/skills/write-ux-spec/SKILL.md +191 -0
- package/dist/method/skills/write-ux-spec/assets/mockup-page.html +36 -0
- package/dist/method/skills/write-ux-spec/assets/ux-template.md +206 -0
- package/dist/method/skills/write-ux-spec/references/accessibility-check.md +74 -0
- package/dist/method/skills/write-ux-spec/references/mockups.md +71 -0
- package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +83 -0
- package/dist/method/skills/write-ux-spec/references/ux-checklist.md +74 -0
- package/dist/product-root.js +21527 -0
- package/dist/rolldown-runtime.js +38 -0
- package/dist/webauthn-verify.js +1 -0
- package/dist/webauthn-verify2.js +107 -0
- package/dist/webauthn.js +9798 -0
- package/package.json +56 -14
- package/bin.mjs +0 -228
package/package.json
CHANGED
|
@@ -1,29 +1,71 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentplugged",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Install the AgentPlugged method in a repository and make its agents callable from Claude Code, Codex, Antigravity/Gemini CLI and Cursor.",
|
|
5
|
+
"releaseSummary": "The engine updates itself: your session moves to a newer version between two calls, with nothing to reconnect.",
|
|
6
|
+
"license": "FSL-1.1-MIT",
|
|
7
|
+
"author": "Innovel Studio SASU",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/AgentPlugged/agentplugged.git",
|
|
11
|
+
"directory": "apps/cli"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/AgentPlugged/agentplugged#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/AgentPlugged/agentplugged/issues"
|
|
16
|
+
},
|
|
17
|
+
"type": "module",
|
|
5
18
|
"keywords": [
|
|
6
|
-
"ai",
|
|
7
19
|
"agents",
|
|
20
|
+
"ai",
|
|
8
21
|
"claude-code",
|
|
9
22
|
"codex",
|
|
23
|
+
"gemini-cli",
|
|
10
24
|
"cursor",
|
|
11
|
-
"workflow",
|
|
12
25
|
"cli"
|
|
13
26
|
],
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"type": "module",
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=24"
|
|
29
|
+
},
|
|
18
30
|
"bin": {
|
|
19
|
-
"agentplugged": "bin.
|
|
31
|
+
"agentplugged": "dist/bin.js"
|
|
20
32
|
},
|
|
21
33
|
"files": [
|
|
22
|
-
"
|
|
34
|
+
"dist",
|
|
23
35
|
"README.md",
|
|
24
|
-
"LICENSE"
|
|
36
|
+
"LICENSE",
|
|
37
|
+
"LICENSE-METHOD"
|
|
25
38
|
],
|
|
26
|
-
"
|
|
27
|
-
"
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@clack/prompts": "~1.8.1",
|
|
41
|
+
"@modelcontextprotocol/server": "~2.3.0",
|
|
42
|
+
"@napi-rs/keyring": "~2.1.0",
|
|
43
|
+
"yaml": "~2.9.1",
|
|
44
|
+
"zod": "~4.6.5"
|
|
45
|
+
},
|
|
46
|
+
"optionalDependencies": {
|
|
47
|
+
"koffi": "~3.3.2"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@agentplugged/adapters-git": "1.0.0",
|
|
51
|
+
"@agentplugged/adapters-tools": "1.0.0",
|
|
52
|
+
"@agentplugged/core": "1.0.0",
|
|
53
|
+
"@agentplugged/crypto": "1.0.0",
|
|
54
|
+
"@agentplugged/i18n": "1.0.0",
|
|
55
|
+
"@agentplugged/mcp": "1.0.0",
|
|
56
|
+
"@agentplugged/method": "0.0.0",
|
|
57
|
+
"@agentplugged/protocol": "1.0.0",
|
|
58
|
+
"@biomejs/biome": "~2.5.15",
|
|
59
|
+
"@modelcontextprotocol/client": "~2.3.0",
|
|
60
|
+
"@types/node": "^24.19.1",
|
|
61
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
62
|
+
"tsdown": "~0.23.0",
|
|
63
|
+
"vitest": "^5.0.3"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsdown",
|
|
67
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
68
|
+
"lint": "biome check .",
|
|
69
|
+
"test": "vitest run"
|
|
28
70
|
}
|
|
29
|
-
}
|
|
71
|
+
}
|
package/bin.mjs
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// AgentPlugged waitlist package: explains the project, offers to join the launch waitlist,
|
|
3
|
-
// and points to the real release as soon as it is published. Installs nothing, writes nothing.
|
|
4
|
-
import { readFileSync } from "node:fs";
|
|
5
|
-
import readline from "node:readline";
|
|
6
|
-
|
|
7
|
-
const VERSION = JSON.parse(readFileSync(new URL("./package.json", import.meta.url), "utf8")).version;
|
|
8
|
-
const WAITLIST_URL = process.env.AGENTPLUGGED_WAITLIST_URL || "https://agentplugged.ai/api/waitlist";
|
|
9
|
-
const REGISTRY_URL = "https://registry.npmjs.org/agentplugged/latest";
|
|
10
|
-
const EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;
|
|
11
|
-
|
|
12
|
-
const MESSAGES = {
|
|
13
|
-
en: {
|
|
14
|
-
intro: "AgentPlugged is coming soon: the cockpit for your team of AI coding agents.",
|
|
15
|
-
detail:
|
|
16
|
-
"Your agents code in Claude Code, Codex or Cursor; you follow, approve and decide from the web, your phone or your voice.",
|
|
17
|
-
notYet: "The method is not published yet.",
|
|
18
|
-
released: (v) => `AgentPlugged ${v} is out. Run: npx agentplugged@latest init`,
|
|
19
|
-
ask: "Your email to be notified on launch day (leave empty to skip): ",
|
|
20
|
-
consent: "One email, on launch day. No spam, unsubscribe in one click.",
|
|
21
|
-
invalid: "This address doesn't look valid. Check it and try again.",
|
|
22
|
-
skipped: "No problem. You can also join at https://agentplugged.ai",
|
|
23
|
-
sending: "Sending…",
|
|
24
|
-
ok: "You're on the list. You'll be among the first to know.",
|
|
25
|
-
then: "On launch day, this same command will install the method: npx agentplugged init",
|
|
26
|
-
failed: "Sign-up didn't go through. Try again later or join at https://agentplugged.ai",
|
|
27
|
-
noTty: "Join the waitlist at https://agentplugged.ai",
|
|
28
|
-
help: "Usage: npx agentplugged [init]\n\nJoins the AgentPlugged launch waitlist. Nothing is installed or written to your project.",
|
|
29
|
-
},
|
|
30
|
-
fr: {
|
|
31
|
-
intro: "AgentPlugged arrive bientôt : le poste de pilotage de votre équipe d'agents IA de développement.",
|
|
32
|
-
detail:
|
|
33
|
-
"Vos agents codent dans Claude Code, Codex ou Cursor ; vous suivez, validez et décidez depuis le web, le téléphone ou la voix.",
|
|
34
|
-
notYet: "La méthode n'est pas encore publiée.",
|
|
35
|
-
released: (v) => `AgentPlugged ${v} est en ligne. Lancez : npx agentplugged@latest init`,
|
|
36
|
-
ask: "Votre e-mail pour être prévenu le jour du lancement (vide pour passer) : ",
|
|
37
|
-
consent: "Un seul e-mail, le jour du lancement. Pas de spam, désinscription en un clic.",
|
|
38
|
-
invalid: "Cette adresse ne semble pas valide. Vérifiez-la et réessayez.",
|
|
39
|
-
skipped: "Pas de souci. Vous pouvez aussi vous inscrire sur https://agentplugged.ai",
|
|
40
|
-
sending: "Envoi…",
|
|
41
|
-
ok: "C'est noté. Vous serez parmi les premiers prévenus.",
|
|
42
|
-
then: "Le jour du lancement, cette même commande installera la méthode : npx agentplugged init",
|
|
43
|
-
failed: "L'inscription n'a pas abouti. Réessayez plus tard ou inscrivez-vous sur https://agentplugged.ai",
|
|
44
|
-
noTty: "Inscrivez-vous à la liste d'attente sur https://agentplugged.ai",
|
|
45
|
-
help: "Usage : npx agentplugged [init]\n\nInscrit à la liste d'attente du lancement d'AgentPlugged. Rien n'est installé ni écrit dans votre projet.",
|
|
46
|
-
},
|
|
47
|
-
es: {
|
|
48
|
-
intro: "AgentPlugged llega pronto: el puesto de mando de tu equipo de agentes de IA de desarrollo.",
|
|
49
|
-
detail:
|
|
50
|
-
"Tus agentes programan en Claude Code, Codex o Cursor; tú sigues, validas y decides desde la web, el teléfono o la voz.",
|
|
51
|
-
notYet: "El método aún no está publicado.",
|
|
52
|
-
released: (v) => `AgentPlugged ${v} ya está disponible. Ejecuta: npx agentplugged@latest init`,
|
|
53
|
-
ask: "Tu correo para avisarte el día del lanzamiento (vacío para saltar): ",
|
|
54
|
-
consent: "Un solo correo, el día del lanzamiento. Sin spam, baja en un clic.",
|
|
55
|
-
invalid: "Esta dirección no parece válida. Revísala e inténtalo de nuevo.",
|
|
56
|
-
skipped: "Sin problema. También puedes apuntarte en https://agentplugged.ai",
|
|
57
|
-
sending: "Enviando…",
|
|
58
|
-
ok: "Apuntado. Serás de los primeros en saberlo.",
|
|
59
|
-
then: "El día del lanzamiento, este mismo comando instalará el método: npx agentplugged init",
|
|
60
|
-
failed: "La inscripción no se completó. Inténtalo más tarde o apúntate en https://agentplugged.ai",
|
|
61
|
-
noTty: "Apúntate a la lista de espera en https://agentplugged.ai",
|
|
62
|
-
help: "Uso: npx agentplugged [init]\n\nTe apunta a la lista de espera del lanzamiento de AgentPlugged. No se instala ni se escribe nada en tu proyecto.",
|
|
63
|
-
},
|
|
64
|
-
pt: {
|
|
65
|
-
intro: "AgentPlugged chega em breve: o cockpit da sua equipe de agentes de IA de desenvolvimento.",
|
|
66
|
-
detail:
|
|
67
|
-
"Seus agentes programam no Claude Code, Codex ou Cursor; você acompanha, valida e decide pela web, pelo celular ou pela voz.",
|
|
68
|
-
notYet: "O método ainda não foi publicado.",
|
|
69
|
-
released: (v) => `AgentPlugged ${v} já está disponível. Execute: npx agentplugged@latest init`,
|
|
70
|
-
ask: "Seu e-mail para ser avisado no dia do lançamento (vazio para pular): ",
|
|
71
|
-
consent: "Um único e-mail, no dia do lançamento. Sem spam, descadastro em um clique.",
|
|
72
|
-
invalid: "Este endereço não parece válido. Confira e tente de novo.",
|
|
73
|
-
skipped: "Sem problema. Você também pode se inscrever em https://agentplugged.ai",
|
|
74
|
-
sending: "Enviando…",
|
|
75
|
-
ok: "Anotado. Você estará entre os primeiros a saber.",
|
|
76
|
-
then: "No dia do lançamento, este mesmo comando instalará o método: npx agentplugged init",
|
|
77
|
-
failed: "A inscrição não foi concluída. Tente mais tarde ou inscreva-se em https://agentplugged.ai",
|
|
78
|
-
noTty: "Inscreva-se na lista de espera em https://agentplugged.ai",
|
|
79
|
-
help: "Uso: npx agentplugged [init]\n\nInscreve você na lista de espera do lançamento do AgentPlugged. Nada é instalado nem escrito no seu projeto.",
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
function detectLanguage() {
|
|
84
|
-
const candidates = [process.env.LC_ALL, process.env.LC_MESSAGES, process.env.LANG];
|
|
85
|
-
try {
|
|
86
|
-
candidates.push(Intl.DateTimeFormat().resolvedOptions().locale);
|
|
87
|
-
} catch {}
|
|
88
|
-
for (const value of candidates) {
|
|
89
|
-
const code = String(value || "").slice(0, 2).toLowerCase();
|
|
90
|
-
if (code in MESSAGES) return code;
|
|
91
|
-
}
|
|
92
|
-
return "en";
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const color = process.stdout.isTTY && !process.env.NO_COLOR;
|
|
96
|
-
const bold = (text) => (color ? `\x1b[1m${text}\x1b[22m` : text);
|
|
97
|
-
const dim = (text) => (color ? `\x1b[2m${text}\x1b[22m` : text);
|
|
98
|
-
const green = (text) => (color ? `\x1b[32m${text}\x1b[39m` : text);
|
|
99
|
-
|
|
100
|
-
async function fetchWithTimeout(url, options, ms) {
|
|
101
|
-
const controller = new AbortController();
|
|
102
|
-
const timer = setTimeout(() => controller.abort(), ms);
|
|
103
|
-
try {
|
|
104
|
-
return await fetch(url, { ...options, signal: controller.signal });
|
|
105
|
-
} finally {
|
|
106
|
-
clearTimeout(timer);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// npx can reuse a cached copy of this package after the real release: ask the registry.
|
|
111
|
-
async function releasedVersion() {
|
|
112
|
-
try {
|
|
113
|
-
const response = await fetchWithTimeout(REGISTRY_URL, {}, 3000);
|
|
114
|
-
if (!response.ok) return null;
|
|
115
|
-
const { version } = await response.json();
|
|
116
|
-
return typeof version === "string" && !version.startsWith("0.0.") ? version : null;
|
|
117
|
-
} catch {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// One interface for the whole session, so piped answers are not lost between questions.
|
|
123
|
-
function createAsker() {
|
|
124
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
125
|
-
const lines = [];
|
|
126
|
-
let waiting = null;
|
|
127
|
-
let closed = false;
|
|
128
|
-
rl.on("line", (line) => {
|
|
129
|
-
if (waiting) {
|
|
130
|
-
const resolve = waiting;
|
|
131
|
-
waiting = null;
|
|
132
|
-
resolve(line.trim());
|
|
133
|
-
} else lines.push(line.trim());
|
|
134
|
-
});
|
|
135
|
-
const finish = () => {
|
|
136
|
-
closed = true;
|
|
137
|
-
if (waiting) {
|
|
138
|
-
process.stdout.write("\n");
|
|
139
|
-
waiting("");
|
|
140
|
-
waiting = null;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
rl.on("close", finish);
|
|
144
|
-
rl.on("SIGINT", () => rl.close());
|
|
145
|
-
return {
|
|
146
|
-
ask(question) {
|
|
147
|
-
process.stdout.write(question);
|
|
148
|
-
if (lines.length) {
|
|
149
|
-
const line = lines.shift();
|
|
150
|
-
process.stdout.write(`${line}\n`);
|
|
151
|
-
return Promise.resolve(line);
|
|
152
|
-
}
|
|
153
|
-
if (closed) return Promise.resolve("");
|
|
154
|
-
return new Promise((resolve) => {
|
|
155
|
-
waiting = resolve;
|
|
156
|
-
});
|
|
157
|
-
},
|
|
158
|
-
close: () => rl.close(),
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
async function main() {
|
|
163
|
-
const args = process.argv.slice(2);
|
|
164
|
-
const t = MESSAGES[detectLanguage()];
|
|
165
|
-
if (args.includes("--version") || args.includes("-v")) {
|
|
166
|
-
console.log(VERSION);
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
170
|
-
console.log(t.help);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
console.log(`\n${bold("AgentPlugged")}\n${t.intro}`);
|
|
175
|
-
console.log(dim(t.detail));
|
|
176
|
-
|
|
177
|
-
const released = await releasedVersion();
|
|
178
|
-
if (released) {
|
|
179
|
-
console.log(`\n${green(t.released(released))}\n`);
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
console.log(`\n${t.notYet}`);
|
|
183
|
-
|
|
184
|
-
if (!process.stdin.isTTY || process.env.CI) {
|
|
185
|
-
console.log(`${t.noTty}\n`);
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
console.log(dim(t.consent));
|
|
190
|
-
const asker = createAsker();
|
|
191
|
-
let email = "";
|
|
192
|
-
for (let attempt = 0; attempt < 3; attempt++) {
|
|
193
|
-
email = (await asker.ask(t.ask)).toLowerCase();
|
|
194
|
-
if (!email || (email.length <= 254 && EMAIL.test(email))) break;
|
|
195
|
-
console.log(t.invalid);
|
|
196
|
-
email = "";
|
|
197
|
-
}
|
|
198
|
-
asker.close();
|
|
199
|
-
if (!email) {
|
|
200
|
-
console.log(`${t.skipped}\n`);
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
console.log(dim(t.sending));
|
|
205
|
-
try {
|
|
206
|
-
const response = await fetchWithTimeout(
|
|
207
|
-
WAITLIST_URL,
|
|
208
|
-
{
|
|
209
|
-
method: "POST",
|
|
210
|
-
headers: { "content-type": "application/json" },
|
|
211
|
-
body: JSON.stringify({ email, lang: detectLanguage(), source: "npm" }),
|
|
212
|
-
},
|
|
213
|
-
10000,
|
|
214
|
-
);
|
|
215
|
-
const body = await response.json().catch(() => ({}));
|
|
216
|
-
if (response.ok && body.ok) {
|
|
217
|
-
console.log(`${green(t.ok)}\n${t.then}\n`);
|
|
218
|
-
} else if (body.error === "invalid_email") {
|
|
219
|
-
console.log(`${t.invalid}\n`);
|
|
220
|
-
} else {
|
|
221
|
-
console.log(`${t.failed}\n`);
|
|
222
|
-
}
|
|
223
|
-
} catch {
|
|
224
|
-
console.log(`${t.failed}\n`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
await main();
|