@noodleseed/agent-kit 0.34.0 → 0.36.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/manifest.json +129 -29
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +48 -29
- package/skills/claude-code/examples/acme-bistro/README.md +1 -1
- package/skills/claude-code/examples/customer-auth/README.md +7 -0
- package/skills/claude-code/examples/gmail-multi-account/README.md +46 -0
- package/skills/claude-code/examples/gmail-multi-account/noodle.json +4 -0
- package/skills/claude-code/examples/gmail-multi-account/package.json +16 -0
- package/skills/claude-code/examples/gmail-multi-account/src/server.ts +485 -0
- package/skills/claude-code/examples/gmail-multi-account/test/server.test.ts +271 -0
- package/skills/claude-code/examples/gmail-multi-account/vitest.config.ts +28 -0
- package/skills/claude-code/references/app-directory-compliance.md +59 -0
- package/skills/claude-code/references/authoring-workflow.md +3 -1
- package/skills/claude-code/references/build-an-mcp-app.md +52 -0
- package/skills/claude-code/references/build-an-mcp-server.md +54 -0
- package/skills/claude-code/references/compile-errors.md +4 -0
- package/skills/claude-code/references/connect-an-api.md +60 -20
- package/skills/claude-code/references/deploy-and-ops.md +15 -79
- package/skills/claude-code/references/embedded-assistant.md +1 -1
- package/skills/claude-code/references/examples.md +1 -0
- package/skills/claude-code/references/experience-design.md +1 -1
- package/skills/claude-code/references/inspect-hosted.md +26 -0
- package/skills/claude-code/references/publishing.md +15 -17
- package/skills/claude-code/references/sdk-surface.md +6 -0
- package/skills/claude-code/references/verify-and-recover.md +65 -0
- package/skills/codex/SKILL.md +48 -29
- package/skills/codex/examples/acme-bistro/README.md +1 -1
- package/skills/codex/examples/customer-auth/README.md +7 -0
- package/skills/codex/examples/gmail-multi-account/README.md +46 -0
- package/skills/codex/examples/gmail-multi-account/noodle.json +4 -0
- package/skills/codex/examples/gmail-multi-account/package.json +16 -0
- package/skills/codex/examples/gmail-multi-account/src/server.ts +485 -0
- package/skills/codex/examples/gmail-multi-account/test/server.test.ts +271 -0
- package/skills/codex/examples/gmail-multi-account/vitest.config.ts +28 -0
- package/skills/codex/references/app-directory-compliance.md +59 -0
- package/skills/codex/references/authoring-workflow.md +3 -1
- package/skills/codex/references/build-an-mcp-app.md +52 -0
- package/skills/codex/references/build-an-mcp-server.md +54 -0
- package/skills/codex/references/compile-errors.md +4 -0
- package/skills/codex/references/connect-an-api.md +60 -20
- package/skills/codex/references/deploy-and-ops.md +15 -79
- package/skills/codex/references/embedded-assistant.md +1 -1
- package/skills/codex/references/examples.md +1 -0
- package/skills/codex/references/experience-design.md +1 -1
- package/skills/codex/references/inspect-hosted.md +26 -0
- package/skills/codex/references/publishing.md +15 -17
- package/skills/codex/references/sdk-surface.md +6 -0
- package/skills/codex/references/verify-and-recover.md +65 -0
- package/skills/claude-code/references/chatgpt-compliance.md +0 -63
- package/skills/codex/references/chatgpt-compliance.md +0 -63
package/manifest.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "0.
|
|
2
|
+
"packageVersion": "0.36.0",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": "skills/codex/SKILL.md",
|
|
6
|
-
"sha256": "
|
|
6
|
+
"sha256": "9a355585df5a510e9adc84382de469424b0691917e7ef58bfa1ca953493984db",
|
|
7
7
|
"agentTarget": "codex"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"path": "skills/codex/references/sdk-surface.md",
|
|
11
|
-
"sha256": "
|
|
11
|
+
"sha256": "ff74db13656d8ca9c932225eb841ad76206e41d72253c3897f109c0f9710c5ea",
|
|
12
12
|
"agentTarget": "codex"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -23,27 +23,37 @@
|
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"path": "skills/codex/references/compile-errors.md",
|
|
26
|
-
"sha256": "
|
|
26
|
+
"sha256": "786dcbb3a06b4f7826726ea59b76515b9907d31c2c3dd4e6f81198ad85ec9184",
|
|
27
|
+
"agentTarget": "codex"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"path": "skills/codex/references/build-an-mcp-server.md",
|
|
31
|
+
"sha256": "05dfa0df90e21a6a403806883e326caefb2dd5acec1c762b891b6e778327fd48",
|
|
27
32
|
"agentTarget": "codex"
|
|
28
33
|
},
|
|
29
34
|
{
|
|
30
35
|
"path": "skills/codex/references/authoring-workflow.md",
|
|
31
|
-
"sha256": "
|
|
36
|
+
"sha256": "9f7c6fda964d2c54aca10141332c95f82dcaae6d53f6ae32f120e9dc8b0224a0",
|
|
32
37
|
"agentTarget": "codex"
|
|
33
38
|
},
|
|
34
39
|
{
|
|
35
40
|
"path": "skills/codex/references/embedded-assistant.md",
|
|
36
|
-
"sha256": "
|
|
41
|
+
"sha256": "f09563513b34f75b55318838f247bdd5e238fb56d7023ea96c4175bcb8774553",
|
|
37
42
|
"agentTarget": "codex"
|
|
38
43
|
},
|
|
39
44
|
{
|
|
40
45
|
"path": "skills/codex/references/connect-an-api.md",
|
|
41
|
-
"sha256": "
|
|
46
|
+
"sha256": "c267092dc35141adeeddba6e5af4ebff71df2640cbb7b4c2e3b902d2b33a03ae",
|
|
47
|
+
"agentTarget": "codex"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"path": "skills/codex/references/build-an-mcp-app.md",
|
|
51
|
+
"sha256": "71b80632a2f87b63849ff44a86ce03f883aaedf2c52441ea1030f343c160dbd3",
|
|
42
52
|
"agentTarget": "codex"
|
|
43
53
|
},
|
|
44
54
|
{
|
|
45
55
|
"path": "skills/codex/references/experience-design.md",
|
|
46
|
-
"sha256": "
|
|
56
|
+
"sha256": "dff779f01ff24984e1d24459620b2c9807bcfdb98ba8cb29f7467c7eb529ea30",
|
|
47
57
|
"agentTarget": "codex"
|
|
48
58
|
},
|
|
49
59
|
{
|
|
@@ -56,29 +66,39 @@
|
|
|
56
66
|
"sha256": "08e44784a0d838c322d443eae6b35d5c75b4252a0975db835ef504535e25584a",
|
|
57
67
|
"agentTarget": "codex"
|
|
58
68
|
},
|
|
69
|
+
{
|
|
70
|
+
"path": "skills/codex/references/verify-and-recover.md",
|
|
71
|
+
"sha256": "22b6a93faa0e20dc874ced541f2d453716892035a36e4278353c1b4150537fe3",
|
|
72
|
+
"agentTarget": "codex"
|
|
73
|
+
},
|
|
59
74
|
{
|
|
60
75
|
"path": "skills/codex/references/troubleshooting.md",
|
|
61
76
|
"sha256": "238a8d0f4ff8635ed8b0bc63db734634c44ba82e78a3851dc50c85486e1fb942",
|
|
62
77
|
"agentTarget": "codex"
|
|
63
78
|
},
|
|
79
|
+
{
|
|
80
|
+
"path": "skills/codex/references/inspect-hosted.md",
|
|
81
|
+
"sha256": "944ea95b9e9e65c7ff9027b47bbc0c21ca1a81806d4126774cf869eb4b206b93",
|
|
82
|
+
"agentTarget": "codex"
|
|
83
|
+
},
|
|
64
84
|
{
|
|
65
85
|
"path": "skills/codex/references/deploy-and-ops.md",
|
|
66
|
-
"sha256": "
|
|
86
|
+
"sha256": "1f74050942433f8f6a163243bc5a631c286c27612834739798798445e392ea92",
|
|
67
87
|
"agentTarget": "codex"
|
|
68
88
|
},
|
|
69
89
|
{
|
|
70
90
|
"path": "skills/codex/references/publishing.md",
|
|
71
|
-
"sha256": "
|
|
91
|
+
"sha256": "b8e2ef715b51f70154e1210086cccb9e7165d95cd40a374546482679f355cff8",
|
|
72
92
|
"agentTarget": "codex"
|
|
73
93
|
},
|
|
74
94
|
{
|
|
75
|
-
"path": "skills/codex/references/
|
|
76
|
-
"sha256": "
|
|
95
|
+
"path": "skills/codex/references/app-directory-compliance.md",
|
|
96
|
+
"sha256": "77a30c9af09c05502c2245795d49e3487a6b1b0c7a70e26aa0996b7d670dfce8",
|
|
77
97
|
"agentTarget": "codex"
|
|
78
98
|
},
|
|
79
99
|
{
|
|
80
100
|
"path": "skills/codex/references/examples.md",
|
|
81
|
-
"sha256": "
|
|
101
|
+
"sha256": "98a1ce82b038000798240b7ca4ca0ce2c43a4e6589fd6b59590afe30c102aa56",
|
|
82
102
|
"agentTarget": "codex"
|
|
83
103
|
},
|
|
84
104
|
{
|
|
@@ -88,7 +108,7 @@
|
|
|
88
108
|
},
|
|
89
109
|
{
|
|
90
110
|
"path": "skills/codex/examples/acme-bistro/README.md",
|
|
91
|
-
"sha256": "
|
|
111
|
+
"sha256": "b364c7db64afad1788ad321681f7e41bcc5f1c328829adeb12c78601d1522fbb",
|
|
92
112
|
"agentTarget": "codex"
|
|
93
113
|
},
|
|
94
114
|
{
|
|
@@ -258,7 +278,7 @@
|
|
|
258
278
|
},
|
|
259
279
|
{
|
|
260
280
|
"path": "skills/codex/examples/customer-auth/README.md",
|
|
261
|
-
"sha256": "
|
|
281
|
+
"sha256": "e836885125aa31a5586509858ae5ebfabd23c6d5c931d1abd7cb62521a3fbc49",
|
|
262
282
|
"agentTarget": "codex"
|
|
263
283
|
},
|
|
264
284
|
{
|
|
@@ -331,6 +351,36 @@
|
|
|
331
351
|
"sha256": "d1c579d0987aeb67fc08a351f81c619eb02cadbd664ed77b8bab00573acc768a",
|
|
332
352
|
"agentTarget": "codex"
|
|
333
353
|
},
|
|
354
|
+
{
|
|
355
|
+
"path": "skills/codex/examples/gmail-multi-account/README.md",
|
|
356
|
+
"sha256": "eeee6f15435702d24131f7d7e64b05e41fe65cd467bd7b37d97a0c6aa2af46a6",
|
|
357
|
+
"agentTarget": "codex"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"path": "skills/codex/examples/gmail-multi-account/noodle.json",
|
|
361
|
+
"sha256": "9f3c9cb28f0ff26757e022fecdc9bcaa008e77bbccc6949df0cc879af5ebf166",
|
|
362
|
+
"agentTarget": "codex"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"path": "skills/codex/examples/gmail-multi-account/package.json",
|
|
366
|
+
"sha256": "d0fb8fd281954915e105d1949e079ff9919e04204da520fd7b41c6320750e467",
|
|
367
|
+
"agentTarget": "codex"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"path": "skills/codex/examples/gmail-multi-account/src/server.ts",
|
|
371
|
+
"sha256": "2bb185b724ea69b02be94b2694a6864ee878065889973b3b52ad9293eab3e88e",
|
|
372
|
+
"agentTarget": "codex"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"path": "skills/codex/examples/gmail-multi-account/test/server.test.ts",
|
|
376
|
+
"sha256": "b248a6fbda6e7d30aadd316e4e244aff963ca4a31fcd08977675ef6653ad0ff5",
|
|
377
|
+
"agentTarget": "codex"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"path": "skills/codex/examples/gmail-multi-account/vitest.config.ts",
|
|
381
|
+
"sha256": "29acd34abc3452647c912d06b55a27f6600a4fe42b68d94b3ea822d34bfe3842",
|
|
382
|
+
"agentTarget": "codex"
|
|
383
|
+
},
|
|
334
384
|
{
|
|
335
385
|
"path": "skills/codex/examples/hello/README.md",
|
|
336
386
|
"sha256": "82fbbaa49e6eae064fffb4ea59a45a17cf350075780ff3e386b92b7f72a8201d",
|
|
@@ -383,12 +433,12 @@
|
|
|
383
433
|
},
|
|
384
434
|
{
|
|
385
435
|
"path": "skills/claude-code/SKILL.md",
|
|
386
|
-
"sha256": "
|
|
436
|
+
"sha256": "9a355585df5a510e9adc84382de469424b0691917e7ef58bfa1ca953493984db",
|
|
387
437
|
"agentTarget": "claude-code"
|
|
388
438
|
},
|
|
389
439
|
{
|
|
390
440
|
"path": "skills/claude-code/references/sdk-surface.md",
|
|
391
|
-
"sha256": "
|
|
441
|
+
"sha256": "ff74db13656d8ca9c932225eb841ad76206e41d72253c3897f109c0f9710c5ea",
|
|
392
442
|
"agentTarget": "claude-code"
|
|
393
443
|
},
|
|
394
444
|
{
|
|
@@ -403,27 +453,37 @@
|
|
|
403
453
|
},
|
|
404
454
|
{
|
|
405
455
|
"path": "skills/claude-code/references/compile-errors.md",
|
|
406
|
-
"sha256": "
|
|
456
|
+
"sha256": "786dcbb3a06b4f7826726ea59b76515b9907d31c2c3dd4e6f81198ad85ec9184",
|
|
457
|
+
"agentTarget": "claude-code"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"path": "skills/claude-code/references/build-an-mcp-server.md",
|
|
461
|
+
"sha256": "05dfa0df90e21a6a403806883e326caefb2dd5acec1c762b891b6e778327fd48",
|
|
407
462
|
"agentTarget": "claude-code"
|
|
408
463
|
},
|
|
409
464
|
{
|
|
410
465
|
"path": "skills/claude-code/references/authoring-workflow.md",
|
|
411
|
-
"sha256": "
|
|
466
|
+
"sha256": "9f7c6fda964d2c54aca10141332c95f82dcaae6d53f6ae32f120e9dc8b0224a0",
|
|
412
467
|
"agentTarget": "claude-code"
|
|
413
468
|
},
|
|
414
469
|
{
|
|
415
470
|
"path": "skills/claude-code/references/embedded-assistant.md",
|
|
416
|
-
"sha256": "
|
|
471
|
+
"sha256": "f09563513b34f75b55318838f247bdd5e238fb56d7023ea96c4175bcb8774553",
|
|
417
472
|
"agentTarget": "claude-code"
|
|
418
473
|
},
|
|
419
474
|
{
|
|
420
475
|
"path": "skills/claude-code/references/connect-an-api.md",
|
|
421
|
-
"sha256": "
|
|
476
|
+
"sha256": "c267092dc35141adeeddba6e5af4ebff71df2640cbb7b4c2e3b902d2b33a03ae",
|
|
477
|
+
"agentTarget": "claude-code"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"path": "skills/claude-code/references/build-an-mcp-app.md",
|
|
481
|
+
"sha256": "71b80632a2f87b63849ff44a86ce03f883aaedf2c52441ea1030f343c160dbd3",
|
|
422
482
|
"agentTarget": "claude-code"
|
|
423
483
|
},
|
|
424
484
|
{
|
|
425
485
|
"path": "skills/claude-code/references/experience-design.md",
|
|
426
|
-
"sha256": "
|
|
486
|
+
"sha256": "dff779f01ff24984e1d24459620b2c9807bcfdb98ba8cb29f7467c7eb529ea30",
|
|
427
487
|
"agentTarget": "claude-code"
|
|
428
488
|
},
|
|
429
489
|
{
|
|
@@ -436,29 +496,39 @@
|
|
|
436
496
|
"sha256": "08e44784a0d838c322d443eae6b35d5c75b4252a0975db835ef504535e25584a",
|
|
437
497
|
"agentTarget": "claude-code"
|
|
438
498
|
},
|
|
499
|
+
{
|
|
500
|
+
"path": "skills/claude-code/references/verify-and-recover.md",
|
|
501
|
+
"sha256": "22b6a93faa0e20dc874ced541f2d453716892035a36e4278353c1b4150537fe3",
|
|
502
|
+
"agentTarget": "claude-code"
|
|
503
|
+
},
|
|
439
504
|
{
|
|
440
505
|
"path": "skills/claude-code/references/troubleshooting.md",
|
|
441
506
|
"sha256": "238a8d0f4ff8635ed8b0bc63db734634c44ba82e78a3851dc50c85486e1fb942",
|
|
442
507
|
"agentTarget": "claude-code"
|
|
443
508
|
},
|
|
509
|
+
{
|
|
510
|
+
"path": "skills/claude-code/references/inspect-hosted.md",
|
|
511
|
+
"sha256": "944ea95b9e9e65c7ff9027b47bbc0c21ca1a81806d4126774cf869eb4b206b93",
|
|
512
|
+
"agentTarget": "claude-code"
|
|
513
|
+
},
|
|
444
514
|
{
|
|
445
515
|
"path": "skills/claude-code/references/deploy-and-ops.md",
|
|
446
|
-
"sha256": "
|
|
516
|
+
"sha256": "1f74050942433f8f6a163243bc5a631c286c27612834739798798445e392ea92",
|
|
447
517
|
"agentTarget": "claude-code"
|
|
448
518
|
},
|
|
449
519
|
{
|
|
450
520
|
"path": "skills/claude-code/references/publishing.md",
|
|
451
|
-
"sha256": "
|
|
521
|
+
"sha256": "b8e2ef715b51f70154e1210086cccb9e7165d95cd40a374546482679f355cff8",
|
|
452
522
|
"agentTarget": "claude-code"
|
|
453
523
|
},
|
|
454
524
|
{
|
|
455
|
-
"path": "skills/claude-code/references/
|
|
456
|
-
"sha256": "
|
|
525
|
+
"path": "skills/claude-code/references/app-directory-compliance.md",
|
|
526
|
+
"sha256": "77a30c9af09c05502c2245795d49e3487a6b1b0c7a70e26aa0996b7d670dfce8",
|
|
457
527
|
"agentTarget": "claude-code"
|
|
458
528
|
},
|
|
459
529
|
{
|
|
460
530
|
"path": "skills/claude-code/references/examples.md",
|
|
461
|
-
"sha256": "
|
|
531
|
+
"sha256": "98a1ce82b038000798240b7ca4ca0ce2c43a4e6589fd6b59590afe30c102aa56",
|
|
462
532
|
"agentTarget": "claude-code"
|
|
463
533
|
},
|
|
464
534
|
{
|
|
@@ -468,7 +538,7 @@
|
|
|
468
538
|
},
|
|
469
539
|
{
|
|
470
540
|
"path": "skills/claude-code/examples/acme-bistro/README.md",
|
|
471
|
-
"sha256": "
|
|
541
|
+
"sha256": "b364c7db64afad1788ad321681f7e41bcc5f1c328829adeb12c78601d1522fbb",
|
|
472
542
|
"agentTarget": "claude-code"
|
|
473
543
|
},
|
|
474
544
|
{
|
|
@@ -638,7 +708,7 @@
|
|
|
638
708
|
},
|
|
639
709
|
{
|
|
640
710
|
"path": "skills/claude-code/examples/customer-auth/README.md",
|
|
641
|
-
"sha256": "
|
|
711
|
+
"sha256": "e836885125aa31a5586509858ae5ebfabd23c6d5c931d1abd7cb62521a3fbc49",
|
|
642
712
|
"agentTarget": "claude-code"
|
|
643
713
|
},
|
|
644
714
|
{
|
|
@@ -711,6 +781,36 @@
|
|
|
711
781
|
"sha256": "d1c579d0987aeb67fc08a351f81c619eb02cadbd664ed77b8bab00573acc768a",
|
|
712
782
|
"agentTarget": "claude-code"
|
|
713
783
|
},
|
|
784
|
+
{
|
|
785
|
+
"path": "skills/claude-code/examples/gmail-multi-account/README.md",
|
|
786
|
+
"sha256": "eeee6f15435702d24131f7d7e64b05e41fe65cd467bd7b37d97a0c6aa2af46a6",
|
|
787
|
+
"agentTarget": "claude-code"
|
|
788
|
+
},
|
|
789
|
+
{
|
|
790
|
+
"path": "skills/claude-code/examples/gmail-multi-account/noodle.json",
|
|
791
|
+
"sha256": "9f3c9cb28f0ff26757e022fecdc9bcaa008e77bbccc6949df0cc879af5ebf166",
|
|
792
|
+
"agentTarget": "claude-code"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"path": "skills/claude-code/examples/gmail-multi-account/package.json",
|
|
796
|
+
"sha256": "d0fb8fd281954915e105d1949e079ff9919e04204da520fd7b41c6320750e467",
|
|
797
|
+
"agentTarget": "claude-code"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"path": "skills/claude-code/examples/gmail-multi-account/src/server.ts",
|
|
801
|
+
"sha256": "2bb185b724ea69b02be94b2694a6864ee878065889973b3b52ad9293eab3e88e",
|
|
802
|
+
"agentTarget": "claude-code"
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
"path": "skills/claude-code/examples/gmail-multi-account/test/server.test.ts",
|
|
806
|
+
"sha256": "b248a6fbda6e7d30aadd316e4e244aff963ca4a31fcd08977675ef6653ad0ff5",
|
|
807
|
+
"agentTarget": "claude-code"
|
|
808
|
+
},
|
|
809
|
+
{
|
|
810
|
+
"path": "skills/claude-code/examples/gmail-multi-account/vitest.config.ts",
|
|
811
|
+
"sha256": "29acd34abc3452647c912d06b55a27f6600a4fe42b68d94b3ea822d34bfe3842",
|
|
812
|
+
"agentTarget": "claude-code"
|
|
813
|
+
},
|
|
714
814
|
{
|
|
715
815
|
"path": "skills/claude-code/examples/hello/README.md",
|
|
716
816
|
"sha256": "82fbbaa49e6eae064fffb4ea59a45a17cf350075780ff3e386b92b7f72a8201d",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/agent-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Self-checking, self-updating agent skills for the Noodle Seed CLI. Authored in this repo by @noodle-borg/agent-kit; this is the published, independently-versioned canonical skills artifact the CLI fetches and verifies.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -3,55 +3,73 @@ name: noodle-seed
|
|
|
3
3
|
description: Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.36.0 hash:75dd0f6f85b04858 -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
10
10
|
Build, validate, test, deploy, and operate Noodle Seed MCP servers and apps authored in TypeScript with the `noodle` CLI. Author from the configured entrypoint (usually `server.ts`); keep the authoring surface TypeScript-only.
|
|
11
11
|
|
|
12
|
-
Use this skill for project-local Noodle Seed authoring in
|
|
12
|
+
Use this skill for project-local Noodle Seed authoring in the active coding host; preserve generated and user instruction boundaries.
|
|
13
|
+
|
|
14
|
+
If the request is unrelated to the Noodle MCP surface, stop here: follow the project's normal instructions and run no Noodle lifecycle commands.
|
|
13
15
|
|
|
14
16
|
**Installed-plugin execution.** When this skill is supplied by the Noodle Developer plugin, preserve the managed invocation path established by the plugin bootstrap and invoke every `noodle` command through that host bundle's managed launcher. Do not install or update a global CLI. Noodle guides and operates the lifecycle; you write and test the application source in the user's project.
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Route the request
|
|
19
|
+
|
|
20
|
+
Choose exactly one primary route from the user outcome below. Read that primary reference in full, then begin the work. Read supporting references only when the primary workflow sends you there or the named evidence exposes that concern. Stop discovery once the route is selected.
|
|
21
|
+
|
|
22
|
+
Apply this precedence when wording overlaps: diagnosis of an existing failure takes the verification route; an MCP App/UI outcome takes the App route; external API integration from credentials, a URL, or an API specification takes precedence over generic server building; hosted inspection is the read-only route; hosted mutation requires the explicitly requested deployment route.
|
|
23
|
+
|
|
24
|
+
Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route and stop with a handoff; preparation does not authorize `link`, hosted config, deployment, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.
|
|
17
25
|
|
|
18
|
-
|
|
26
|
+
| User outcome | Primary reference | Supporting references only when needed | Done when |
|
|
27
|
+
| :--- | :--- | :--- | :--- |
|
|
28
|
+
| Create or extend a headless MCP server whose external API contract is already modeled | `references/build-an-mcp-server.md` | `references/authoring-workflow.md`, `references/sdk-surface.md` | The requested server behavior is locally validated and tested; connector reads have real-output evidence. |
|
|
29
|
+
| Connect a real API when credentials or an API specification are available | `references/connect-an-api.md` | `references/authoring-workflow.md` | A representative live read returns populated, intentionally mapped fields without exposing credentials. |
|
|
30
|
+
| Build or change an MCP App, widget, or host-visible UI | `references/build-an-mcp-app.md` | `references/experience-design.md`, `references/widgets-and-apps.md` | The UI has a stated user benefit, passes the requested checks, and degrades to useful text. |
|
|
31
|
+
| Validate, test, diagnose, or recover a failing local or hosted project | `references/verify-and-recover.md` | `references/agent-contract.md`, `references/compile-errors.md` | The failing evidence layer is repaired and rerun, or the remaining blocker and exact next action are reported. |
|
|
32
|
+
| Inspect or diagnose hosted status, logs, metrics, events, or deployment metadata read-only | `references/inspect-hosted.md` | None | The requested hosted evidence is reported without changing target, configuration, access, or deployment state. |
|
|
33
|
+
| Deploy, configure, connect with writes, change access, or roll back a hosted MCP service when explicitly requested | `references/deploy-and-ops.md` | `references/cli-commands.md` | The requested hosted state is evidenced without claiming unperformed host or production checks. |
|
|
34
|
+
| Embed a Noodle assistant in an existing SaaS or web application | `references/embedded-assistant.md` | `references/authoring-workflow.md` | The requested embed boundary works with verified identity and credential separation at the tested level. |
|
|
35
|
+
| Prepare or submit an integration to a host directory | `references/publishing.md` | `references/app-directory-compliance.md` | The requested submission evidence is complete and any host-review uncertainty is explicit. |
|
|
36
|
+
| Report a Noodle Seed bug, documentation gap, or product improvement | `references/feedback.md` | None | A sanitized command is shown to the user and is submitted only after explicit approval. |
|
|
19
37
|
|
|
20
|
-
|
|
38
|
+
## Common machine loop
|
|
21
39
|
|
|
22
|
-
|
|
40
|
+
The cold-agent commands speak the `--json` envelope. Parse machine state instead of scraping human prose; `references/agent-contract.md` owns the envelope and exit codes.
|
|
23
41
|
|
|
24
|
-
1. **Discover** — `noodle commands --json
|
|
25
|
-
2. **Author** —
|
|
26
|
-
3. **Validate** — `noodle validate --json`;
|
|
27
|
-
4. **
|
|
28
|
-
5. **
|
|
29
|
-
6. **
|
|
30
|
-
7. **Apps/widgets/embed** — `noodle check --json` (add `--target chatgpt|claude|embedded-assistant`), then `noodle devtools`; use `references/widgets-and-apps.md` for MCP Apps and `references/embedded-assistant.md` for a SaaS embed.
|
|
31
|
-
8. **Deploy** — `noodle deploy`; auth fails clean with `error.next` = `noodle login` (see `references/deploy-and-ops.md`).
|
|
32
|
-
9. **Wire into a host** — `noodle connect <codex|claude-code|chatgpt>` (prove it in a real host per `references/test-in-hosts.md`; debug symptoms with `references/troubleshooting.md`).
|
|
33
|
-
10. **Health** — `noodle metrics --agent-output`: a health verdict plus the exact next command per attention item.
|
|
42
|
+
1. **Discover** — use `noodle commands --json` when the required command or flags are uncertain; don't read CLI source.
|
|
43
|
+
2. **Author** — for build routes, edit the configured TypeScript entrypoint, usually `src/server.ts`.
|
|
44
|
+
3. **Validate** — run `noodle validate --json`; repair each `error.errors[]` item at its `path`, then re-run `noodle validate --json`.
|
|
45
|
+
4. **Smoke** — run `noodle test --json` after validation passes.
|
|
46
|
+
5. **Prove the requested level** — connector routes require a safe live read with `noodle tools call`; App routes require `noodle check --json` and `noodle devtools`; hosted or host actions run only when the selected route and current user request authorize that exact level.
|
|
47
|
+
6. **Report evidence** — claim only the highest level actually exercised and name anything not run.
|
|
34
48
|
|
|
35
|
-
##
|
|
49
|
+
## Reference lookup catalog
|
|
36
50
|
|
|
37
|
-
|
|
51
|
+
This is a lookup catalog, not a discovery checklist. Return here only when the selected primary route names a missing technical detail:
|
|
38
52
|
|
|
39
53
|
- `references/agent-contract.md` — the `--json` envelope, exit codes, and the three output modes.
|
|
40
54
|
- `references/sdk-surface.md` — what to import from `@noodleseed/one` and which builder to use.
|
|
41
55
|
- `references/cli-commands.md` — every `noodle` command, grouped by area.
|
|
42
56
|
- `references/compile-errors.md` — fix `noodle validate` errors by code.
|
|
43
|
-
- `references/
|
|
44
|
-
- `references/
|
|
45
|
-
- `references/
|
|
46
|
-
- `references/
|
|
47
|
-
- `references/
|
|
48
|
-
- `references/
|
|
49
|
-
- `references/
|
|
50
|
-
- `references/
|
|
51
|
-
- `references/
|
|
52
|
-
- `references/
|
|
57
|
+
- `references/build-an-mcp-server.md` — outcome-first workflow for a focused, tested, model-facing MCP product.
|
|
58
|
+
- `references/authoring-workflow.md` — input paths, fit checks, connector patterns, authentication, tool design, testing, and managed config.
|
|
59
|
+
- `references/embedded-assistant.md` — HTTPS origins, managed model config, deploy sequencing, session exchange, browser mounting, and credential boundaries.
|
|
60
|
+
- `references/connect-an-api.md` — secure credentials, probe the live API, model the observed shape, and prove real output.
|
|
61
|
+
- `references/build-an-mcp-app.md` — product-fit, output-boundary, fallback, and evidence workflow for an MCP App.
|
|
62
|
+
- `references/experience-design.md` — design an app experience: funnel boundary, grounding, two users, display modes, and wireframe.
|
|
63
|
+
- `references/widgets-and-apps.md` — MCP Apps, typed views, widget hooks, output shaping, and CSP.
|
|
64
|
+
- `references/test-in-hosts.md` — connect and test in real MCP hosts and protocol inspection clients.
|
|
65
|
+
- `references/verify-and-recover.md` — ordered evidence ladder, bounded repair, and honest completion claims.
|
|
66
|
+
- `references/troubleshooting.md` — runtime symptom to cause and fix, locally and hosted.
|
|
67
|
+
- `references/inspect-hosted.md` — read-only hosted status, logs, metrics, events, and deployment diagnosis.
|
|
68
|
+
- `references/deploy-and-ops.md` — explicitly authorized hosted link, config, deploy, access, connection writes, and rollback.
|
|
69
|
+
- `references/publishing.md` — prepare and submit to app and connector directories.
|
|
70
|
+
- `references/app-directory-compliance.md` — the pre-submission experience and policy checklist.
|
|
53
71
|
- `references/examples.md` — flagship example index and a canonical `server.ts`.
|
|
54
|
-
- `references/feedback.md` — draft sanitized product feedback
|
|
72
|
+
- `references/feedback.md` — draft sanitized product feedback and submit only with user approval.
|
|
55
73
|
|
|
56
74
|
## Product feedback
|
|
57
75
|
|
|
@@ -62,6 +80,7 @@ When you discover a bug, missing capability, misleading doc, or improvement idea
|
|
|
62
80
|
- Keep secrets, bearer tokens, refresh tokens, static access keys, `.env.noodle` values, and `~/.noodle/config.json` out of prompts, logs, docs, tests, and generated files.
|
|
63
81
|
- Do not hand-author manifest JSON/YAML, runtime artifacts, connector IR, or hosted asset metadata.
|
|
64
82
|
- Do not add static data-plane credential paths; hosted access is identity-based.
|
|
83
|
+
- Hosted mutation is opt-in. Run `link`, hosted secret/variable/config/access changes, deploy, rollback, host configuration writes, or directory submission only when the current user request explicitly authorizes the exact mutation and target. An inspect, prepare, validate, test, or local-only request grants no such authority; stop and ask before crossing that boundary.
|
|
65
84
|
|
|
66
85
|
## Customization
|
|
67
86
|
|
|
@@ -9,7 +9,7 @@ the app). It pairs a view-backed `tool` menu/cart with app-only `tool` cart help
|
|
|
9
9
|
Capability slot: **end-to-end in-chat transaction + payment-only handoff**, plus a worked **design-first**
|
|
10
10
|
deliverable set (`design/` — a UX Document, a single-file HTML wireframe with an embedded OpenAI Apps SDK
|
|
11
11
|
compliance audit, and a Recommended API contract). It sets the quality bar the `noodle-seed` skill's
|
|
12
|
-
`references/experience-design.md` and `references/
|
|
12
|
+
`references/experience-design.md` and `references/app-directory-compliance.md` teach. (Distinct from
|
|
13
13
|
`food-ordering`, which is the broad widget-composition proof; this one owns the design-first end-to-end +
|
|
14
14
|
compliance exemplar.)
|
|
15
15
|
|
|
@@ -29,6 +29,13 @@ callback.
|
|
|
29
29
|
|
|
30
30
|
## How delegated customer credentials are used
|
|
31
31
|
|
|
32
|
+
This flagship uses the legacy Firebase provider bridge because it is runnable today. That is distinct from
|
|
33
|
+
Core-v2 account-selecting connector aliases: those declare catalog `credentialProfiles` and bind each alias
|
|
34
|
+
with `bind(connector, { profile, connection })`. Hosted bound `managedSecret(...)` connections are runnable;
|
|
35
|
+
bound `externalExchange()` and `clientCredentials(...)` currently compile as portable metadata but fail
|
|
36
|
+
closed before secret or network access until their provider slice lands. Do not replace this example's
|
|
37
|
+
working delegated-session-cookie path with either unsupported bound exchange source.
|
|
38
|
+
|
|
32
39
|
The example has two declarations that work together:
|
|
33
40
|
|
|
34
41
|
```ts
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Gmail multi-account automation
|
|
2
|
+
|
|
3
|
+
**Owns:** The flagship proof that one reusable connector can be bound to multiple independently
|
|
4
|
+
authenticated accounts inside one MCP server.
|
|
5
|
+
|
|
6
|
+
This fictional example binds `gmailConnector()` twice through separate `externalExchange()` logical
|
|
7
|
+
connections. Public tools always accept `accounts: [...]`; reads accept either account or the canonical
|
|
8
|
+
personal-then-work pair, while mutations accept exactly one account and require runtime confirmation.
|
|
9
|
+
|
|
10
|
+
Capability slot: **reusable connector + independently authenticated multi-account bindings**. It is distinct
|
|
11
|
+
from `customer-auth`, which owns authentication of the MCP caller rather than downstream connector accounts.
|
|
12
|
+
|
|
13
|
+
The labels `personal@example.com` and `work@example.com` are static display labels, not provider identities.
|
|
14
|
+
The deployment-owned credential provider maps each logical connection to its real Google authorization.
|
|
15
|
+
No Google client, provider account id, token, or real email address belongs in this project.
|
|
16
|
+
|
|
17
|
+
## Safety and API boundary
|
|
18
|
+
|
|
19
|
+
- Search, message/thread reads, draft reads, and vacation-setting reads may target one or both accounts.
|
|
20
|
+
- Draft creation/update/send, label changes, archive, raw send, trash, and vacation updates target one account.
|
|
21
|
+
- Every mutation is prepared against the exact selected binding and must be confirmed before dispatch.
|
|
22
|
+
- `send_message.raw` and draft `raw` are RFC 2822 MIME bytes encoded with base64url. This example does not
|
|
23
|
+
pretend that `to`/`subject`/`body` strings are sufficient to encode Unicode MIME correctly.
|
|
24
|
+
- Vacation `startTime`/`endTime` schemas enforce only digit-shaped 1–19 character epoch-millisecond strings.
|
|
25
|
+
When both are supplied, Gmail's backend remains authoritative for the required `startTime < endTime`
|
|
26
|
+
relationship; this example does not claim cross-field JSON Schema validation.
|
|
27
|
+
- Trash is reversible. Permanent message/thread/draft deletion, delegation, forwarding/sharing settings,
|
|
28
|
+
and unrestricted raw HTTP requests are intentionally absent.
|
|
29
|
+
|
|
30
|
+
## Local checks
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
noodle validate
|
|
34
|
+
noodle test
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The committed tests compile hermetic fake connector responses. They never contact Gmail or load OAuth
|
|
38
|
+
credentials. A real deployment additionally needs an operator-provided external credential exchange
|
|
39
|
+
endpoint for each logical connection.
|
|
40
|
+
|
|
41
|
+
## Personal automation skill
|
|
42
|
+
|
|
43
|
+
The source skill is [`skills/personal-email-automation/SKILL.md`](skills/personal-email-automation/SKILL.md).
|
|
44
|
+
Validate it with the standard skill validator before distribution. The source skill is shipped as part of
|
|
45
|
+
this example; canonical export of an app and its skill as an installable Codex plugin remains roadmap work
|
|
46
|
+
and is not currently provided by Noodle Seed.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gmail-multi-account",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "vitest run",
|
|
8
|
+
"validate": "noodle validate",
|
|
9
|
+
"dev": "noodle dev",
|
|
10
|
+
"deploy": "noodle deploy"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@noodleseed/one": "latest",
|
|
14
|
+
"vitest": "latest"
|
|
15
|
+
}
|
|
16
|
+
}
|